打开需要更新的firmware,点击Update即可。
五、 SDK开发
a)
FlyCapture2介绍
FlyCapture2是PointGrey公司相机配套的软件开发包。软件支持Microsoft Windows( XP vista ? 设备驱动(for windows) ? 二次开发工具(SDK) ? 多种示例程序及源代码
win7 / x64 x86)、Linux Ubuntu,并且支持ActiveX,,DirectShow,TWAIN APIs。开发包包括:
FlyCapture2特点如下:
? 提供完整易用的用于采集、处理、保存和显示的链接库 ? 提供标准的C/C++/.NET 接口,方便相机与其他设备兼容和结合 ? 使用DMA减少请求的延迟和处理时间 ? 支持多线程编程 ? 提供控制相机的完整API
? 提供Visual C++ 6.0和Visual Studio 2005示例程序及源代码
注:FlyCapture SDK必须配合FlyCapture自带的驱动使用,不支持第三方的驱动程序。
b) 系统要求(软件) 北京凌云光视数字图像技术有限公司 www.lusterinc.com 6/ 11
TEL: 010- 88400505 FAX:010-88400260 Email:sales@lusterlightvision.com 北京市海淀区蓝靛厂南路25号 牛顿办公区南座6层 (100097)
Windows
? Windows XP, Windows Vista or Windows 7 ? MS Visual Studio 6.0 SP5); or
? MS Visual Studio 2005 SP1 (to compile and run example code on Windows XP 64-bit) ? MS Visual Studio 2005 SP1 and SP1 Update for Vista (to compile and run example code on
Windows Vista or Windows 7)
Linux
? Ubuntu 8.04
? gtkmm-2.4-dev and libgtkmm-2.4-dev dependencies to compile and run graphical user interface
(GUI)-based example code, such as FlyCap2. Console applications do not require these packages. These libraries are usually pre-installed.
c) FlyCapture2 C++ API Class介绍
AVIOptionAVI文件选项 用于将图片记录保存为AVI 用于获取相机的GUID(相机标识符) 相机类,用于对相机的连接、采集、参数和功能的设置(原理上都AVIRecorderBusManagerCamera是通过寄存器设置完成),适用于1394和USB接口相机 相机的通用接口类,Camera和GigECamera类的集合 图形化控制相机的参数的GTKmm Dlg 相机信息类 图形化选择相机的GTKmm Dlg 相机诊断信息 相机配置ROM 相机支持的视频格式,GetAvailableFormats()的返回值 所有可用图像参数属性 单独某一个参数属性 大多数函数的返回类型 相机配置类 CameraBaseCameraControlDlgCameraInfoCameraSelectionDlgCameraStatsConfigROMDCAMFormatsEmbeddedImageInfoEmbeddedImageInfoPropertyErrorFC2Config北京凌云光视数字图像技术有限公司 www.lusterinc.com 7/ 11
TEL: 010- 88400505 FAX:010-88400260 Email:sales@lusterlightvision.com 北京市海淀区蓝靛厂南路25号 牛顿办公区南座6层 (100097)
FC2Version当前库版本类 自定义图像格式配置类 自定义图像格式信息类 自动以图像格式数据包信息类 网口相机类 网口相机配置类 网口相机图像设置类 网口相机图像信息类 网口相机参数类 网口相机数据流信息类 主机网络适配器信息类 用于从相机取出图像数据, 以及不同图像格式之间转换和保存图Format7ImageSettingsFormat7InfoFormat7PacketInfoGigECameraGigEConfigGigEImageSettingsGigEImageSettingsInfoGigEPropertyGigEStreamChannelHostAdapterStatsImage片到当地硬盘 与图像有关的相机参数类(shutter、gain等) 图像统计信息类(颜色通道,灰度均值等) IPv4 地址类 JPEG存储操作类 JPEG2000存储操作类 相机查找表信息类 MAC地址类 PGM存储操作类 相机标识符 PNG存储操作类 PPM存储操作类 相机详细参数类(用于读取或设置相机参数) 相机参数有关信息类 ImageMetadataImageStatisticsIPAddressJPEGOptionJPG2OptionLUTDataMACAddressPGMOptionPGRGuidPNGOptionPPMOptionPropertyPropertyInfo北京凌云光视数字图像技术有限公司 www.lusterinc.com 8/ 11
TEL: 010- 88400505 FAX:010-88400260 Email:sales@lusterlightvision.com 北京市海淀区蓝靛厂南路25号 牛顿办公区南座6层 (100097)
StrobeControlStrobeInfo相机闪光灯信号控制类 相机闪光灯信号信息类 系统信息类 TIFF存储操作类 时间戳信息类 用于将所有连接到一台电脑上的相机组成一个树形拓扑结构 相机触发模式类 相机触发设置信息类 用于获取系统信息(系统版本、内存等) 单个相机图像格式信息类 SystemInfoTIFFOptionTimeStampTopologyNodeTriggerModeTriggerModeInfoUtilitiesVideoModesd) FlyCapture2简单开发步骤 1.加载动态链接库和头文件
①需要包含的文件:
\\FlyCapture2\\include下所有头文件
(C文件夹下是C语言需要的头文件,FC1文件夹下是FlyCapture旧版本头文件) \\FlyCapture2\\lib\\FlyCapture2.lib \\FlyCapture2\\lib\\FlyCapture2GUI.lib
②在Project\\Settings\\Link\\Object library modules中加入lFlyCapture2.lib FlyCapture2GUI.lib (release和debug模式下都需要添加)
④在Project\\Settings\\C/C++\\Code Generation\\Use run-time library中选择choose the option Multithreaded DLL (在release模式下) or Debug Multithreaded DLL (在debug模式下) ;
2. 一般开发步骤
1394和usb相机: ①获取总线上相机个数和index BusManager busMgr; //总线信息 unsigned int numCameras; error = busMgr.GetNumOfCameras(&numCameras); //获取总线上所有相机信息 ②获取某一个相机GUID PGRGuid guid; error = busMgr.GetCameraFromIndex(i, &guid); //获取第i个相机的GUID ③连接相机 Camera cam; //相机类
error = cam.Connect(&guid); //连接相机
④设置回调、开始采集
北京凌云光视数字图像技术有限公司 www.lusterinc.com 9/ 11
TEL: 010- 88400505 FAX:010-88400260 Email:sales@lusterlightvision.com 北京市海淀区蓝靛厂南路25号 牛顿办公区南座6层 (100097)
void SDKCallBack(Image *p, const void* pp) { UserCallBack(p->GetData());
} error = cam.StartCapture(SDKCallBack); ⑤更改参数(读写shutter)
Property shutter(SHUTTER);
//回调函数定义举例 //获取图像数据指针
//开始采集,允许没有回调函数 //参数属性类,确定参数类型,详见SDK help,如果改gain,则SHUTTER替换为GAIN //获取相机shutter //shutter值改为0.2s //采用绝对值输入
//关闭自动,手动设置shutter //关闭onePush //shutter有效
error = cam.GetProperty(&shutter); shutter.absValue = 0.2; shutter.absControl = TRUE; shutter.autoManualMode = FALSE; shutter.onePush = FALSE; shutter.onOff = TRUE; shutter.present = TRUE;
error = cam.SetProperty(&shutter); //写入设置好的shutter
⑥保存图片 Image rawImage; //原始数据 error = cam.RetrieveBuffer( &rawImage ); //接收原始数据 error = rawImage.Convert( PIXEL_FORMAT_BGRU, &convertedImage );
//转换成需要的格式 char filename[512]; //文件名 sprintf( filename, \ error = convertedImage.Save( filename ); //保存图片
⑦停止采集、断开连接
error = cam.StopCapture(); error = cam.Disconnect();
网口相机:(初始化和相机参数设置略有不同)
① 获取总线上相机个数和index
BusManager busMgr;
CameraInfo camInfo[128];
unsigned int numCamInfo = 128;
error = BusManager::DiscoverGigECameras( camInfo, &numCamInfo );//可省略
unsigned int numCameras; error = busMgr.GetNumOfCameras(&numCameras);
② 获取某一个相机GUID
PGRGuid guid;
error = busMgr.GetCameraFromIndex(i, &guid); ③ 连接相机
GigECamera cam; 北京凌云光视数字图像技术有限公司 www.lusterinc.com 10/ 11
TEL: 010- 88400505 FAX:010-88400260 Email:sales@lusterlightvision.com 北京市海淀区蓝靛厂南路25号 牛顿办公区南座6层 (100097)
error = cam.Connect(&guid);
④ 其余步骤同上,具体不同函数调用见GigECamera和Camera类说明
北京凌云光视数字图像技术有限公司 www.lusterinc.com 11/ 11
TEL: 010- 88400505 FAX:010-88400260 Email:sales@lusterlightvision.com 北京市海淀区蓝靛厂南路25号 牛顿办公区南座6层 (100097)