栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Ubuntu

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ubuntu

 参考:Opencv中VideoWriter详解https://blog.csdn.net/qq_30011277/article/details/109219684https://blog.csdn.net/qq_30011277/article/details/109219684


 但是x86Ubuntu下用OpenCV4.5编译报错:

 解决:

CV_FOURCC改为VideoWriter::fourcc


完整代码:

#include 
#include 
#include "DVPCamera.h"

using namespace cv;

int main(int argc, char **argv) 
{
	dvpUint32 i=0,count=0;//相机数量
	dvpCameraInfo info[8];//相机信息
	dvpStatus status;//相机状态
	
	dvpHandle h;//相机句柄
	dvpframe frame;//帧数据
	void *p;//?
	cv::Mat img;//OpenCV图像
	
	VideoWriter writer;
	
	writer.open("test.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'),
		75, //录制时的帧率,最好和相机采集帧率一致
		Size(640, 480),
		true);//彩色格式为true,灰度为false
        
        int num=0;

	
	dvpRefresh(&count);
	if (count > 8)count = 8;

	for (i = 0; i < count; i++)
	{    
		if(dvpEnum(i, &info[i]) == DVP_STATUS_OK)    
		{        
			printf("已连接相机: %srn", info[i].FriendlyName);    
		}
	}
	
	
	status = dvpOpen(0, OPEN_NORMAL, &h);//以索引号打开相机
	dvpSetTriggerState(h, false);//设置为连续出图模式
	
	status = dvpStart(h);//启动视频流

	cv::namedWindow("Camera",0);//可以拖动窗口大小
	cv::resizeWindow("Camera", 640, 480);//设置窗口大小
	cv::moveWindow("Camera",1200,500);//设置窗口位置
	
	while(num<=1000)
	{
		dvpGetframe(h, &frame, &p, 1000);//采集一帧图像

		
		img = cv::Mat(frame.iHeight, frame.iWidth, CV_8UC1, (uchar*)p);

		cv::imshow("Camera",img);//显示图像到窗口
		writer<

运行:

如果是彩色格式,修改两处:

  • 色彩参数设置为true
writer.open("test.avi",VideoWriter::fourcc('M', 'J', 'P', 'G'),
        30, //帧率
        Size(640,480),
        true);
  • CV_8UC1改为CV_8UC3三通道格式数据类型 
img = cv::Mat(frame.iHeight, frame.iWidth, CV_8UC3, (uchar*)p);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号