opencv打开笔记本自带摄像头没问题,可无法打开外置USB摄像头,请各位帮我看看怎么回事

tao791990 2017-07-22 11:49:57
之前写过一段程序,而且能够正常运行,但是今天打开就出现问题了。具体错误见图片


#include <cstdio>
#include <cv.h>
#include <highgui.h>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
IplImage *frame = NULL;
IplImage *pDstImg = NULL;
CvCapture *capture1 = cvCaptureFromCAM(1);
//cvSetCaptureProperty(capture1 , CV_CAP_PROP_FRAME_WIDTH , 320); //寻找膛口质心时获取像素较少的图片
//cvSetCaptureProperty(capture1 , CV_CAP_PROP_FRAME_HEIGHT , 240);
char fileName[100];
char key;
int count = 0;
waitKey(3000);
while(1)
{
frame = cvQueryFrame(capture1);
pDstImg = cvCreateImage( cvSize(frame->width, frame->height), IPL_DEPTH_8U, 3);

/*****添加的程序段:将图像画面旋转180度--仿射变换****/
double angle = 180;
CvPoint2D32f center = cvPoint2D32f(frame->width/2.f,frame->height/2.f);
float m[6];
CvMat map_matrix = cvMat( 2, 3, CV_32F,m);
cv2DRotationMatrix(center,angle,1.0,&map_matrix);
cvWarpAffine (frame, pDstImg, &map_matrix);
cvCopy(pDstImg, frame);

/****到此为止****/
cvFlip(frame, NULL, 1); //水平翻转图像,像照镜子一样,不想要这个效果可以去掉此句
key = cvWaitKey(50);
if(key == 27) break; //按ESC键退出程序
if(key == 'p') //按p键拍照
{
sprintf(fileName, "Picture %d.jpg", ++count); //生成文件名
cvSaveImage(fileName, frame);
cvXorS(frame, cvScalarAll(255), frame); //将拍到的图像反色(闪一下形成拍照效果)
cvShowImage("相机",frame);
cvWaitKey(10); //反色图像显示ms
}
// cvShowImage("相机",frame);
cvShowImage("相机",pDstImg);
}
cvReleaseCapture(&capture1);
return 0;
}


然后调试opencv自带程序:打开摄像头也是同样的问题
请各位帮忙看看是怎么回事
...全文
2737 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_44829910 2019-04-30
  • 打赏
  • 举报
回复
请问一下,你是怎么解决的呢 我现在遇到了你之前一样的问题,可以打开电脑自带摄像头,USB摄像机就会出现上面的错误,请指教,谢谢
liutianone 2018-01-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/liutianone/article/details/79144423
kkqingfeng123456 2017-08-26
  • 打赏
  • 举报
回复
请问您是具体怎么解决这个问题的。
tao791990 2017-08-22
  • 打赏
  • 举报
回复
问题已解决!
qq_36058314 2017-08-17
  • 打赏
  • 举报
回复
请问,问题解决了没,我也是第21行出现了和你一样的错误
tao791990 2017-08-04
  • 打赏
  • 举报
回复
引用 9 楼 u011046017 的回复:
是不是本地摄像头启动了呢?
没有啊 启用本地的是CvCapture *capture1 = cvCaptureFromCAM(1);将这个语句1改成0
影醉阏轩窗 2017-08-01
  • 打赏
  • 举报
回复
是不是本地摄像头启动了呢?
Mr_Zhouzl 2017-07-27
  • 打赏
  • 举报
回复
单步加断点调试啊,或者加一句假如指针是NULL,那么就打印出来啊,这样就知道了
tao791990 2017-07-25
  • 打赏
  • 举报
回复
引用 5 楼 qq_21400315 的回复:
查看你的frame是否是空
怎么看呢,如果是空的该怎么解决啊? 我刚刚接触这个,而且编程也很菜,望指导
沐阳2100 2017-07-24
  • 打赏
  • 举报
回复
之前没看到这个贴 貌似在另一个贴里随便回复了下,你这个问题不一定是打开摄像头的问题,你应该断点调试,确定错误位置,多用你的F10 F11!
Mr_Zhouzl 2017-07-24
  • 打赏
  • 举报
回复
查看你的frame是否是空
tao791990 2017-07-24
  • 打赏
  • 举报
回复
引用 3 楼 m0_37901643 的回复:
之前没看到这个贴 貌似在另一个贴里随便回复了下,你这个问题不一定是打开摄像头的问题,你应该断点调试,确定错误位置,多用你的F10 F11!
试过F10逐句调试 它停在了21行,然后就出现第一个图的错误,第二个图就有显示
tao791990 2017-07-22
  • 打赏
  • 举报
回复
请各位吧友帮忙看看,实在是没法了
tao791990 2017-07-22
  • 打赏
  • 举报
回复
各位 有知道怎么回事的麻烦指导一下

4,246

社区成员

发帖
与我相关
我的任务
社区描述
OpenCV相关技术交流专区
计算机视觉人工智能opencv 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • OpenCV
  • 幻灰龙
  • OpenCV中国团队
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

OpenCV中国团队官方博客:https://blog.csdn.net/opencvchina

试试用AI创作助手写篇文章吧