树莓派论坛

 找回密码
 立即注册

关于opencv打开摄像头和摄像

x.D.stream 发表于 2014-5-2 23:54:04 | 显示全部楼层 |阅读模式
在树莓派上配置好了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

求大神解答啊,为什么会这样,第一帧可以清晰保存啊
teddyrpi 发表于 2015-4-22 13:46:38 | 显示全部楼层
谢谢分享,学习中。。。
shumeipai110 发表于 2017-5-7 13:40:20 | 显示全部楼层
楼主怎么配置的opencv 啊,网上的教程太多了,长得都不太一样。。。。
hongshantou 发表于 2017-11-1 09:54:38 | 显示全部楼层
据我所知 不能连拍,拍完第一张后 过几秒再拍第二张,不然会报错写入文件错误,我们用的软件不一样
dianzichina 发表于 2019-6-10 10:19:15 | 显示全部楼层
这个很好,现在我正在学习这个嘞。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )