opencv读取摄像头图像

来源:互联网 发布:mac cs6破解方法 编辑:程序博客网 时间:2024/04/30 17:56

一开始用opencv1的函数来获取摄像头图像,没有报错误但是并没有读到摄像机图像,具体原因可能是数据类型的问题。然而换了IplImage格式也是同样情况。

#include <iostream>#include<opencv2/highgui/highgui.hpp>#include<opencv2/core/core.hpp>using namespace std;using namespace cv;int main(){CvCapture * capture = cvCreateCameraCapture(-1);if (!capture){    cout << "Can not open the camera!\n";    return -1;}Mat frame = cvQueryFrame(capture);char c;while (1){frame = cvQueryFrame(capture);imshow("Cam", frame);c = waitKey(100);if (c == 'q'&&c == 'Q')break;}return 0;}



解决方案:在网上看到一个opencv2的方法,测试成功。


#include<iostream>#include<opencv2\core\core.hpp>#include<opencv2\highgui\highgui.hpp>#include<string>using namespace std;using namespace cv;Mat des;char* windowName = "camera";VideoCapture camera;void main(){namedWindow(windowName);camera.open(0);camera.set(CV_CAP_PROP_FRAME_WIDTH, 640);camera.set(CV_CAP_PROP_FRAME_HEIGHT, 480);if (!camera.isOpened()){printf("摄像头无法打开\n");getchar();return;}char buffer[50];int i = 0;while (true){camera >> des;//camera.read(des);if (des.empty()){printf("des为空 \n");break;}imshow(windowName, des);if (i % 19 == 1){cout << "saving...\n";sprintf_s(buffer, "capture%d.jpg", i);imwrite(buffer, des);}++i;waitKey(3);//break;}waitKey(0);}


0 0
原创粉丝点击