【计算机视觉】opencv 调用工业摄像机(USB接口和GigE接口)
第一次在CSDN写博客,有不到之处请指教,欢迎交流评论留言
开发环境为win7+VS2010+opencv (主要是操作系统windows,Linux还没尝试)
1 代码 opencv直接打开USB和GIgE摄像机
1.1 三种代码形式不同原理相同
方法一
//---------------------------------【头文件、命名空间包含部分】---------------------------- //------------------------------------------------------------------------------------------------- //#include "opencv2/video/tracking.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp"
//-----------------------------------【全局变量声明】-----------------------------------------
//-----------------------------------【main( )函数】-------------------------------------------- //描述:控制台应用程序的入口函数,我们的程序从这里开始 //-------------------------------------------------------------------------------------------------
cap.open(0);//0默认—摄像机,若用笔记本相机;1 --是USB有限,无USB就 网络,若用笔记本;-1选择多个相机界面
namedWindow( "CamShift Demo", 0 ); //imshow( "CamShift Demo", frame);
imshow( "CamShift Demo", frame ); //显示当前帧
方法二
// Camera2.cpp : 定义控制台应用程序的入口点。 #include <opencv2\opencv.hpp>
//-----------------------------------【main( )函数】-------------------------------------------- //描述:控制台应用程序的入口函数,我们的程序从这里开始 //------------------------------------------------------------------------------------------------- //0默认—摄像机,若用笔记本相机;1 --是USB有限,无USB就 网络,若用笔记本;-1选择多个相机界面 Mat frame; //定义一个Mat变量,用于存储每一帧的图像 imshow("读取视频",frame); //显示当前帧
方法三
// Camera3.cpp : 定义控制台应用程序的入口点。
#include <opencv2\opencv.hpp> //0默认—摄像机,若用笔记本相机;1 --是USB有限,无USB就 网络,若用笔记本;-1选择多个相机界面
cout << "can not ";//最后一帧的处理
(PS VideoCapture capture(1);//1 --是USB有限,无USB就 网络,若用笔记本;-1选择多个相机界面;0默认—摄像机,若用笔记本相机)
其实0,1……的设备ID号看WIN7下设备管理器—图像设备,对应的搜引号,从0开始。
1.2 VideoCapture的参考文档介绍
2 常见摄像机工业说明
2.1根据摄像机接口分为USB接口和GigE接口。
(PS1笔记本电脑认为是没有接口的,调用时看ID号,一般为0,)
2.2根据需要安装相关驱动分为带驱动和免驱动。
(PS二次开发(opencv调用时)安装相关驱动参考SDK,其实在win7下设备管理器下能显示的一般能直接调用)
现在贴出博主主要用过的工业相机:
有表达不足,或错误之处还清指正。
(PS VideoCapture capture(1);//1 --是USB有限,无USB就 网络,若用笔记本;-1选择多个相机界面;0默认—摄像机,若若用笔记本相机)
|