图像处理--多个平台下双目视觉的实现
来源:互联网 发布:韩国女排联赛数据 编辑:程序博客网 时间:2024/06/05 08:19
VC6.0下的实现双目视觉见另一篇博客:http://blog.csdn.net/renshengrumenglibing/article/details/6884124
这里主要讲解在opencv2.3+VS10下的实现,opencv2.1+VS10跟这个类似,但是需要逆序打开摄像头。
先看效果:打开三个摄像头:两个USB摄像头一个联想自带的摄像头
双目视觉实现总结:
一、VC6.0+opencv1.0实现双目视觉时,采用的是使用了directshow的一个类CameraDS
http://blog.csdn.net/renshengrumenglibing/article/details/6884124
在opencv2.1+VS10时调用摄像头只要逆序打开多摄像头就可以了,比如先打开ID = 2的再打开ID = 1的,否则第二的摄像头无法打开。
三、opencv2.3+VS10
在opencv2.3+VS10下试了一下,可以直接打开多个摄像头,无需逆序,也无需使用directshow的类。
源码如下:打开三个摄像头opencv2.3+VS10
#include "highgui.h"
#include "cv.h"
int main(){
CvCapture* pCapture0 = cvCreateCameraCapture(0);
CvCapture* pCapture1 = cvCreateCameraCapture(1);
CvCapture* pCapture2 = cvCreateCameraCapture(2);
IplImage* pFrame0 = NULL;
IplImage * pFrame1 = NULL;
IplImage * pFrame2 = NULL;
//创建窗口
cvNamedWindow("video0", 1);
cvNamedWindow("video1",1);
cvNamedWindow("video2",1);
//显示视屏
while(1)
{
pFrame0=cvQueryFrame( pCapture0 );
pFrame1 = cvQueryFrame(pCapture1);
pFrame2 = cvQueryFrame(pCapture2);
if(!pFrame0)break;
if(!pFrame1)break;
if(!pFrame2)break;
cvShowImage("video0",pFrame0);
cvShowImage("video1",pFrame1);
cvShowImage("video2",pFrame2);
char c=cvWaitKey(33);
if(c==27)break;
}
cvReleaseCapture(&pCapture0);
cvReleaseCapture(&pCapture1);
cvReleaseCapture(&pCapture2);
cvDestroyAllWindows();
return 0 ;
}
opencv2.3+VS10的配置:
操作系统:Windows 7 x86 中文旗舰版
编译环境:Visual Studio 2010 中文旗舰版
OpenCV版本:OpenCV-2.3.0-win
1、下载OpenCV(必须要superpack.exe)
http://www.opencv.org.cn/download/OpenCV-2.3.0-win-superpack.exe
2、安装
解压到D盘根目录下。
3、设置系统环境变量
系统环境变量Path中加入
D:\OpenCV2.3\build\x86\vc10\bin
4、建立一个demo
在C++下,新建一个“win32控制台程序”,“空项目”即可,输入以下代码:
#include "StdAfx.h"
#include "highgui.h"
int main()
{
const char* imagename ="D:/Demo.jpg"; //随便放一张jpg图片在D盘或另行设置目录
cv::Mat img = cv::imread(imagename);
if(img.empty()) return -1; //是否加载成功
if(!img.data) return -1;
cv::namedWindow("image",CV_WINDOW_AUTOSIZE);
cv::imshow("image", img);
cv::waitKey();
return 0;
}
5、配置
(1)、在“视图”中打开“属性管理器”;
(2)、在“属性管理器”中双击Demo的项目名称;
(3)、在“Demo属性页”->“VC++目录”->“包含目录”中添加以下目录:
D:\OpenCV2.3\build\include;D:\OpenCV2.3\build\include\opencv;D:\OpenCV2.3\build\include\opencv2
(4)、在“Demo属性页”->“VC++目录”->“库目录”中添加以下目录:
D:\OpenCV2.3\build\x86\vc10\lib
(5)、在“Demo属性页”(“配置”==“Debug”)->“配置属性”->“链接器”->“输入”->“附加依赖库”中添加以下lib文件:
opencv_core230d.lib
opencv_highgui230d.lib
opencv_video230d.lib
opencv_ml230d.lib
opencv_legacy230d.lib
opencv_imgproc230d.lib
(6)、在“Demo属性页”(“配置”==“Release”)->“配置属性”->“链接器”->“输入”->“附加依赖库”中添加以下lib文件:
opencv_core230.lib
opencv_highgui230.lib
opencv_video230.lib
opencv_ml230.lib
opencv_legacy230.lib
opencv_imgproc230.lib
注意:此时极有可能只是添加进去一个库,最好是打开编辑那一栏后再输入~~
6、编译程序,成功!
- 图像处理--多个平台下双目视觉的实现
- 基于DSPC6678与FPGA协同处理的双目交汇视觉图像处理平台
- 双目视觉图像的色彩调整
- 双目视觉系统 图像校正
- 【立体视觉】双目图像匹配
- 双目视觉嵌入式移植校正图像所遇到的问题
- 双目视觉的框架
- 双目视觉的标定
- opencv实现双目视觉测距
- 双目视觉---图像匹配基本算法总结
- 双目视觉学习笔记(一)--qtcreator下使用opencv读取并存储双摄像头图像
- 一些双目视觉的资料
- 双目立体视觉的发展
- 双目立体视觉的原理
- 【计算机视觉】双目视觉1 opencv调用双摄像机 多个摄像机
- 双目视觉下空间坐标计算/双目测距
- 机器视觉,图像处理,多物体追踪的资源列表
- 【opencv】双目视觉下空间坐标计算
- ComputerRack.xaml
- 一段简洁的PHP安装文件代码
- ABAP与设计模式之定义
- Windows内核驱动开发入门学习资料
- vc维
- 图像处理--多个平台下双目视觉的实现
- ComputerRackSingle.xaml
- Ubuntu Linux系统下Apt-get命令参数详解
- [C#]用.NET框架实现ZIP单文件压缩
- 正则表达式
- ComputerRoom.xaml
- ComputerUnit.xaml
- C#读取txt文本文件(dat)的方法
- 技术的荣耀与悲哀...