Java OpenCV 图像处理31 视频分析和对象跟踪 视频写入

60 篇文章 19 订阅

JJava OpenCV 图像处理31 视频分析和对象跟踪 视频写入

Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频写入
VideoWriter.fourcc(char c1, char c2, char c3, char c4) 只能输入4个字符串
VideoWriter 对象会将图像一帧一帧写入到对应的文件中。

VideoWriter writer = new VideoWriter("D:/a.mp4",VideoWriter.fourcc('D', 'I', 'V', 'X'), 15.0,size, true);

VideoWriter 对象构造函数

参数名称解释
参数 1String filename文件路径及文件名(列如:“D:/a.mp4”)
参数 2int fourcc指定 FourCC
参数 3double fps传递帧率的数量
参数 4Size frameSize传递帧率的大小
参数 4boolean isColor最后一个是颜色标志。如果为 True,编码器期望颜色帧,否则它与灰度帧一起工作。

FourCC:http://en.wikipedia.org/wiki/FourCC 是用于指定视频编解码器的4字节代码。可用代码列表可在fourcc.org中:http://www.fourcc.org/codecs.php 找到。它取决于平台。遵循编解码器对我来说效果很好。

在Fedora中:DIVX,XVID,MJPG,X264,WMV1,WMV2 等等 具体请参考 fourcc.org(最好使用XVID。MJPG会生成大尺寸的视频。X264会生成非常小的尺寸的视频)

package com.xu.object;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.videoio.VideoCapture;
import org.opencv.videoio.VideoWriter;
import org.opencv.videoio.Videoio;
/**  
 * 
 * @Title: OpenCV01.java   
 * @Package com.xu.opencv   
 * @Description: TODO   
 * @author: xuhyacinth     
 * @date: 2019年3月14日 下午12:10:14   
 * @version: V-1.0 
 * @Copyright: 2019 xuhyacinth
 *
 */
public class Video {

	static {
		System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
	}

	public static void main(String[] args) {
		writeVideo();
	}

	/**
	 * OpenCV-4.0.0 将摄像头写入本地
	 * @return: void  
	 * @date: 2019年3月14日12:08:19
	 */
	public static void writeVideo() {
		//1 如果要从摄像头获取视频 则要在 VideoCapture 的构造方法写 0
		VideoCapture capture = new VideoCapture(0);
		Mat video = new Mat();
		int index = 0;
		Size size = new Size(capture.get(Videoio.CAP_PROP_FRAME_WIDTH),capture.get(Videoio.CAP_PROP_FRAME_HEIGHT));
		VideoWriter writer = new VideoWriter("D:/a.mp4",VideoWriter.fourcc('D', 'I', 'V', 'X'), 15.0,size, true);
		while(capture.isOpened()) {
			capture.read(video);//2 将摄像头的视频写入 Mat video 中
			writer.write(video);
			HighGui.imshow("像头获取视频", video);//3 显示图像
			index = HighGui.waitKey(100);//4 获取键盘输入
			if(index == 27) {//5 如果是 Esc 则退出
				capture.release();
				writer.release();
				return;
			}
		}
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值