作者:jink2005
下面代码实现对两个摄像头的访问设置和图像显示功能,本人没有编程尝试,主要学习了下他的实现方式。不保证能正常运行,呵呵。
seleted from: http://www.opencv.org.cn/forum/viewtopic.php?t=3341
- #include <stdio.h>
- #include <cv.h>
- #include <cxcore.h>
- #include <highgui.h>
- #include <cvcam.h>
- void stereocallback(IplImage* image1,IplImage* image2);
- int main()
- {
- int ncams = cvcamGetCamerasCount( );//返回可以访问的摄像头数目
- cvcamWindow MyWin2;
- cvcamWindow MyWin;
- cvNamedWindow("leftVideo", 1);
- cvNamedWindow("rightVideo",1);
- cvcamSetProperty(1, CVCAM_PROP_ENABLE, CVCAMTRUE);
- cvcamSetProperty(1, CVCAM_PROP_RENDER, CVCAMTRUE);
- MyWin = (cvcamWindow) cvGetWindowHandle("cvcam window");
- cvcamSetProperty(1, CVCAM_PROP_WINDOW, &MyWin);
- cvcamSetProperty(1, CVCAM_STEREO_CALLBACK, stereocallback);
- cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE);
- cvcamSetProperty(0, CVCAM_PROP_RENDER, CVCAMTRUE);
- MyWin2 = (cvcamWindow) cvGetWindowHandle("cvcam window2");
- cvcamSetProperty(0, CVCAM_PROP_WINDOW, &MyWin2);
- cvcamSetProperty(0, CVCAM_STEREO_CALLBACK, stereocallback);
- cvcamInit( );
- cvcamStart( );
- cvWaitKey(0);
- cvcamStop( );
- cvcamExit( );
- cvDestroyWindow("leftVideo");
- cvDestroyWindow("rightVideo");
- return 0;
- }
- void stereocallback(IplImage* image1,IplImage* image2)//IplImage* image2
- {
- //创建窗口
- //cvNamedWindow("leftVideo", 1);
- //cvNamedWindow("rightVideo",1);
- //使窗口有序排列
- cvMoveWindow("leftVideo", 30, 0);
- cvMoveWindow("rightVideo", 360, 0);
- cvShowImage("leftVideo", image1);cvShowImage("rightVideo", image2);
- cvWaitKey(10);
- }
另有参考代码见:
http://www.opencv.org.cn/forum/viewtopic.php?p=9910