簡體   English   中英

在java中捕獲視頻第一幀文件

[英]Capture video first frame file in java

我正在嘗試獲取視頻文件的第一幀。 我的代碼基於我在網上找到的一些示例,但我不明白編碼中有什么問題。

非常感謝您的幫助。

JAVA類:

import org.bytedeco.javacv.*;
import org.bytedeco.javacpp.*;
import org.bytedeco.javacpp.indexer.*;
import org.bytedeco.opencv.opencv_core.*;
import org.bytedeco.opencv.opencv_videoio.*;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.videoio.Videoio;

import static org.bytedeco.opencv.global.opencv_core.*;
import static org.bytedeco.opencv.global.opencv_imgproc.*;
import static org.bytedeco.opencv.global.opencv_videoio.*;
import static org.bytedeco.opencv.global.opencv_imgcodecs.*;


public class VideoFrameCapture {

    public static void main(String[] args) {

        int initFrames;
        Mat frame = new Mat();          

        VideoCapture capture = new VideoCapture("C:\\TMP\\video\\pub3.mp4");

        capture.set(Videoio.CAP_PROP_FRAME_WIDTH,320);
        capture.set(Videoio.CAP_PROP_FRAME_HEIGHT,240);

        initFrames = (int) capture.get(1);

        if (capture.isOpened()) {
            capture.read(frame);
        }

        if (frame != null) {
            Imgcodecs.imwrite("C:\\TMP\\video\\cover.jpg", frame, CV_16U);
        }
    } 
}

錯誤信息

Imgcodecs 類型中的 imwrite(String, Mat, MatOfInt) 方法不適用於參數 (String, Mat, int)

我已經更正了導入和這樣的代碼,它運行良好:

import org.bytedeco.opencv.opencv_core.*;
import org.bytedeco.opencv.opencv_videoio.*;

import static org.bytedeco.opencv.global.opencv_core.*;
import static org.bytedeco.opencv.global.opencv_imgcodecs.*;


public class VideoFrameCapture {

    public static void main(String[] args) {
        int height = 240;
        int width = 320;

        Mat frame = new Mat(height, width, CV_8UC1);

        VideoCapture capture = new VideoCapture("C:\\TMP\\video\\pub3.mp4");

        if (capture.isOpened()) {
            capture.read(frame);
        }

        if (frame != null) {
            imwrite("C:\\TMP\\video\\cover.jpg", frame);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM