想问一下OpenCV中VideoCapture类中的open函数打开视频时是不是需要解码? 20

我用OpenCV写了个基于DCT变换的数字水印算法。当用VideoCapture定义一个对象,然后使用open()函数打开它。我想知道open函数对视频做了哪些操作。我以... 我用OpenCV写了个基于DCT变换的数字水印算法。当用VideoCapture定义一个对象,然后使用open()函数打开它。我想知道open函数对视频做了哪些操作。我以为它会通过调用opencv_ffmpeg330_64.dll这个动态库对其进行解码。可是当我删除这个链接库时发现程序运行正常。不知道open函数对视频到底做了什么操作。如果是对视频进行解码,它是使用哪里的解码库呢?是系统自带的解码库还是opencv中除了ffmpeg还有解码库?请详细说明一下,谢谢。如果是大神可以加我qq:1028369009。我对视频编解码是个小白,好多不懂得,希望可以请教一下,会有报酬的。

VideoCapture capture;

bool emptyflag = false;

capture.open(path1);
if (!capture.isOpened())
{
MessageBox(_T("文件打开失败"));
exit(0);
}
//获取帧率
double fps = capture.get(CV_CAP_PROP_FPS);
if (fps > 24)
{
fps = 24;
}
int jiange = 1 * 60 * fps;
//用cvSize函数建立一个CvSize类型的变量size,其宽度和高度与输入视频文件相同
CvSize size = Size((int)capture.get(CV_CAP_PROP_FRAME_WIDTH),
(int)capture.get(CV_CAP_PROP_FRAME_HEIGHT));
VideoWriter writer(path2, CV_FOURCC('D', 'I', 'V', 'X'),
fps, size);// 1:输出文件名;2:编码方式;3:帧率;4:单帧图片大小;5:默认为true,若为false则可以传入灰度图像
long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT);
Mat frame;//将视频帧读取到frame矩阵中

float percent = 100, current = 0, tot = 0;
string strpercent;
for (size_t i = 0; i < totalFrameNumber; i++)
{
Mat frame2;

capture >> frame2;
if (frame2.empty())//遇到frame为空跳出循环
{

break;
}

current = i;
tot = totalFrameNumber;

percent = (current / tot) * 100;

strpercent = to_string(percent);
EditControl5 = strpercent.c_str();
UpdateData(FALSE);
UpdateWindow();

if ((i % jiange == 0))//当到达五分钟的时候进行水印的嵌入然后再写入视频中,否则直接写入视频中
{
IMGDCT(frame2,strtext);
}
//IMGDCT(frame2, strtext);
writer << frame2;
}
展开
 我来答
DoramiHe
2018-06-03 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
VideoCapture和cvCapture其实是一样的,你可以去看看源码,VideoCapture其实在内部调用了cvCapture。这是不同版本的opencv导致的。我接触到的opencv有过一次大升级,函数名有很多变化,其实是向着面向对象的方向发展了,也就是开始重c++而轻c了。
cvLoadImage和imread返回值略有差异,过去的opencv处理图像倾向使用IplImage类型。升级后更倾向于将图像、矩阵等等都统一使用Mat类型上。差别不大。
你看头文件也能发现imread位于highgui.hpp里面是c++,cvLoadImage位于highgui_c.h里,是c。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式