Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取
Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频读取
package com.xu.opencv.video;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.videoio.VideoCapture;
/**
*
* @Title: Video.java
* @Package com.xu.object
* @Description: TODO
* @author: xuhyacinth
* @date: 2020年3月24日19:00:46
* @version: V-1.0
* @Copyright: 2019 xuhyacinth
*
*/
public class Video {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
getVideoFromFile();
}
/**
* OpenCV-4.0.0 从摄像头视频读取
* @return: void
* @date: 2020年3月24日19:00:46
*/
public static void getVideoFromCamera() {
//1 如果要从摄像头获取视频 则要在 VideoCapture 的构造方法写 0
VideoCapture capture=new VideoCapture(0);
Mat video=new Mat();
int index=0;
while(capture.isOpened()) {
capture.read(video);//2 将摄像头的视频写入 Mat video 中
HighGui.imshow("摄像头获取视频", video);//3 显示图像
index = HighGui.waitKey(100);//4 获取键盘输入
if(index == 27) {//5 如果是 Esc 则退出
break;
}
}
capture.release();
}
/**
* OpenCV-4.0.0 从视频文件视频读取
* @return: void
* @date: 2020年3月24日19:00:46
*/
public static void getVideoFromFile() {
VideoCapture capture=new VideoCapture();
capture.open("C:\\Users\\hyacinth\\Desktop\\1.mp4");//1 读取视频文件的路径
Mat video=new Mat();
int index=0;
while(capture.isOpened()) {
capture.read(video);//2 视频文件的视频写入 Mat video 中
HighGui.imshow("本地文件获取视频", video);//3 显示图像
index = HighGui.waitKey(100);//4 获取键盘输入
if(index == 27) {//5 如果是 Esc 则退出
break;
}
}
capture.release();
}
}