我靠,门庭冷清,解决了,是因为摄像头摄取的图片大小超过了OpenCV最大限度,所以造成了缓冲区大小不匹配,http://www.me.sie.dendai.ac.jp/labWiki/wiki.cgi?page=*%C3%ED%B0%D5%BD%F1%A4%AD-USB%A5%AB%A5%E1%A5%E9%A4%CE%BB%C8%CD%D1
这个网站上有明确的说明。

解决方案 »

  1.   

    我尝试用EasyCAP采集卡,接模拟摄像头视频,用OpenCV读取图像并处理,发现EasyCAP没有对应SDK函数,也非通用接口,也遇到类似问题,想和你讨论下呢,我号码15000965761
      

  2.   

    langyayulingyu提供的解决链接是日语的能不能整个中文的解决方法,谢谢啦,着急中。。
      

  3.   

    可以在capture = cvCaptureFromCAM(1);这句话后边加入如下两条语句再试一下:
    int width = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
    cvSetCaptureProperty(capture , CV_CAP_PROP_FRAME_WIDTH, width*2);