如何使用ffmpeg库把从摄像头传回的bmp图像不断保存成视频?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用ffmpeg库把从摄像头传回的bmp图像不断保存成视频?相关的知识,希望对你有一定的参考价值。
用的是QT,已经通过以下方式获取到图片的数据
QByteArray array;
array.resize(frameLength);
read(array.data(),array.size());
请问如何操作,十分感谢。
最好能使用到H264压缩算法,谢谢了
opencv 如何能把从摄像头中抓取的两帐图片进行精确比较?
偶是用的opencv 中的IpIImage类型接受的摄像头抓取到的帧,然后, cvGet2D(图像地址,y,x)值赋给CvScalar变量,再从CvScalar变量的val[0]、val[1]、val[2]值进行比较,用的是松下摄像机WV-CP500L/G,黑白摄像机,先抓一幅开机拍摄的图像,然后,摄像机不动,人实时在摄像机前走动,不断抓取图像,与第一幅图进行元素的RGB值对比,可就不精确,请赐教?!
//////////////////////////////////////////////////////////////////////////图片比较,并根据判断为不相同象素点的坐标值,用数组记录为1
for (int i = 0;i < nature_load->height; i++)
for (int j = 0;j < nature_load->width;j++)
sorce = cvGet2D(nature_load,i,j);
dest = cvGet2D(bgr_frame,i,j);
if(abs(sorce.val[0] - dest.val[0]) > 0||abs(sorce.val[1] - dest.val[1])> 0||abs(sorce.val[2] - dest.val[2]) > 0 )
arr[i][j] = 1;
if (max_x < j)
max_x = j;
if (min_x > j)
min_x = j;
这种方法不靠谱的,一个是摄像机的白平衡,一个是移动目标对光场的扰动追问
谢谢,我已经解决了,我设定了个阈值60.因为通过摄像头抓取的两张图片,精确比较一定是不相同的,因为光线和摄像机拍摄的原因。所以设定阈值为60可以很好搞定:abs(sorce.val[0] - dest.val[0]) > 60||abs(sorce.val[1] - dest.val[1])> 60||abs(sorce.val[2] - dest.val[2]) > 60,这样问题就很好解决了。谢谢!
追答这种方法能解决你的问题就好,我担心的是如果人身上的颜色和背景相差不到你说的阈值,有可能分离不出来
以上是关于如何使用ffmpeg库把从摄像头传回的bmp图像不断保存成视频?的主要内容,如果未能解决你的问题,请参考以下文章