听取网友的建议,在qt中用opencv访问摄像头。opencv对图像的处理能力非常强大,但是要用它进行录像,保存视频就不那么好用了。代码如下: double outCompressCodec = cvGetCaptureProperty(pCamCapture,CV_CAP_PROP_FOURCC);
pWriter=cvCreateVideoWriter("d:\\out2.avi",outCompressCodec,20, cvSize(pFrame->width, pFrame->height), 1 );
for(int i=0;i<200;i++)
//while(pCamCapture)
{
pFrame = cvQueryFrame(pCamCapture);
cvWriteFrame(pWriter, pFrame);
//cvShowImage("cam",pFrame);
//if(112==cvWaitKey(20))
// break;
}它录制出来的东西,速度上没办法控制。比如,我花10秒钟做了一件事,可能到了视频上只用了7秒。这样的视频,就不能反映真实的情况。如何解决这个问题呢??除了这种先从摄像头提取图像,再一张张图像制成视频,这种笨方法以外,还有更好用的方法吗??
pWriter=cvCreateVideoWriter("d:\\out2.avi",outCompressCodec,20, cvSize(pFrame->width, pFrame->height), 1 );
for(int i=0;i<200;i++)
//while(pCamCapture)
{
pFrame = cvQueryFrame(pCamCapture);
cvWriteFrame(pWriter, pFrame);
//cvShowImage("cam",pFrame);
//if(112==cvWaitKey(20))
// break;
}它录制出来的东西,速度上没办法控制。比如,我花10秒钟做了一件事,可能到了视频上只用了7秒。这样的视频,就不能反映真实的情况。如何解决这个问题呢??除了这种先从摄像头提取图像,再一张张图像制成视频,这种笨方法以外,还有更好用的方法吗??
解决方案 »
- combox控件的记忆功能
- RELEASE 版本非法访问,是CstringArray惹得祸?
- 为何在CMainFrame::OnCreate()中调用GetMenu()产生异常?
- 今天谈离职,不知会如何?
- 各位高手,请问iphlpapi.h iphlpapi.lib iphlpapi.dll哪里有呀!高分
- CFormView怎么与CDialog对话框通信
- 连接报错
- 高分寻<<UML与Rational Rose 2002从入门到精通>>配套光盘。。。?
- 静态绑定问题:确定缺省参数和重载是如何选用静态还是动态(附源码!)
- 列表控件的右键响应,怎么分别响应表头和表体?
- C_BUTTON27' : undeclared identifier
- 控件使用问题
你说的是啊,OpenCV处理视频效果的确不行。我当初考虑的一个主要原因,就是它可以在linux下用。Directshow是微软发布的,它可以做到这一点吗?