关于opencv打开摄像头和摄像
在树莓派上配置好了opencv,然后连接了摄像头,也可以用。可以从摄像头拍下一帧的照片,但是拍不了第二帧,程序如下:#include <stdio.h>
#include <stdlib.h>
#include <opencv/highgui.h>
#include <opencv/cv.h>
int main()
{
printf("program has opened\n");
IplImage* img=NULL;//图像结构体
IplImage* img2=NULL;
CvCapture* cam = cvCreateCameraCapture(0);
img = cvQueryFrame(cam);
cvSaveImage("photo.jpg", img, 0);
cvWaitKey(33);
cvReleaseImage(&img);
cvWaitKey(33);
cam=cvCreateCameraCapture(0);
img2 = cvQueryFrame(cam);//这里出错,如果没有上面一行会显示段错误,如果有上面一行显示下文说的错
if (img2==NULL)
{
}
else
{
cvSaveImage("photo2.jpg", img2, 0);
char c2=cvWaitKey(33);
cvReleaseImage(&img2);
}
return 0;
}
然后在那一行出现这个错误:
VIDIOC_REQBUFS: Device or resource busy
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
Unable to stop the stream.: Bad file descriptor
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
*** glibc detected *** ./opencv: double free or corruption (fasttop): 0x014cc2e0 ***
Aborted
求大神解答啊,为什么会这样,第一帧可以清晰保存啊
谢谢分享,学习中。。。 楼主怎么配置的opencv 啊,网上的教程太多了,长得都不太一样。。。。 据我所知 不能连拍,拍完第一张后 过几秒再拍第二张,不然会报错写入文件错误,我们用的软件不一样 这个很好,现在我正在学习这个嘞。
页:
[1]