1、北京凌云光视数字图像技术有限公司 1/ 10TEL: 010- 88400505 FAX:010-88400260 Email:北京市海淀区蓝靛厂南路 25 号 牛顿办公区南座 6 层 (100097)FlyCap2 使用说明一、 硬件要求a) OS:Window XP/7 32/64 位,Ubuntu 8.04/10.04b) 数据线:1394 线二、 接口定义Pin GPIO 功能1 IO0 Input 3.3V+2 IO1 Output 无源光隔离3 IO2 可定义 Input 或者 Output 3.3V+4 IO3 可定义 Input 或者 Output 3.3V+5 GND 电源
2、地,IO2 地,IO3 地6 GND IO0 地,IO1 地7 Vext +12v 电源供电接入8 TBD(待定) 3.3V 输出输出信号接法如下图:虚线左半部分为相机内部电路,右半部分是外部电路,需要在 7 和 6 之间加入上拉电压和负载北京凌云光视数字图像技术有限公司 2/ 10TEL: 010- 88400505 FAX:010-88400260 Email:北京市海淀区蓝靛厂南路 25 号 牛顿办公区南座 6 层 (100097)电阻。三、 软件安装及连接a) 软件(windows 版)安装前,要求电脑预装.Net Framework,推荐安装.Net Framework 3.5。b
3、) 为避免软件冲突,建议卸载其他网口相机驱动,并确认网卡驱动为原版驱动。c) 推荐安装软件版本为 FlyCapture2.1.3.5,下载链接:http:/ 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
4、-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 介绍AVIOption AVI 文件选项AVIRecorder 用于将图片记录保存为 AVI B
5、usManager 用于获取相机的 GUID(相机标识符)Camera相机类,用于对相机的连接、采集、参数和功能的设置(原理上都是通过寄存器设置完成),适用于 1394 和 USB 接口相机CameraBase 相机的通用接口类,Camera 和 GigECamera 类的集合CameraControlDlg 图形化控制相机的参数的 GTKmm DlgCameraInfo 相机信息类CameraSelectionDlg 图形化选择相机的 GTKmm DlgCameraStats 相机诊断信息ConfigROM 相机配置 ROMDCAMFormats 相机支持的视频格式,GetAvailable
6、Formats()的返回值 EmbeddedImageInfo 所有可用图像参数属性 EmbeddedImageInfoProperty 单独某一个参数属性Error 大多数函数的返回类型FC2Config 相机配置类FC2Version 当前库版本类北京凌云光视数字图像技术有限公司 8/ 10TEL: 010- 88400505 FAX:010-88400260 Email:北京市海淀区蓝靛厂南路 25 号 牛顿办公区南座 6 层 (100097)Format7ImageSettings 自定义图像格式配置类Format7Info 自定义图像格式信息类Format7PacketInfo 自
7、动以图像格式数据包信息类GigECamera 网口相机类GigEConfig 网口相机配置类GigEImageSettings 网口相机图像设置类GigEImageSettingsInfo 网口相机图像信息类GigEProperty 网口相机参数类GigEStreamChannel 网口相机数据流信息类HostAdapterStats 主机网络适配器信息类Image用于从相机取出图像数据, 以及不同图像格式之间转换和保存图片到当地硬盘ImageMetadata 与图像有关的相机参数类(shutter、gain 等)ImageStatistics 图像统计信息类(颜色通道,灰度均值等)IPAdd
8、ress IPv4 地址类JPEGOption JPEG 存储操作类JPG2Option JPEG2000 存储操作类 LUTData 相机查找表信息类 MACAddress MAC 地址类PGMOption PGM 存储操作类PGRGuid 相机标识符PNGOption PNG 存储操作类PPMOption PPM 存储操作类Property 相机详细参数类(用于读取或设置相机参数)PropertyInfo 相机参数有关信息类StrobeControl 相机闪光灯信号控制类StrobeInfo 相机闪光灯信号信息类SystemInfo 系统信息类北京凌云光视数字图像技术有限公司 9/ 10
9、TEL: 010- 88400505 FAX:010-88400260 Email:北京市海淀区蓝靛厂南路 25 号 牛顿办公区南座 6 层 (100097)TIFFOption TIFF 存储操作类TimeStamp 时间戳信息类TopologyNode 用于将所有连接到一台电脑上的相机组成一个树形拓扑结构TriggerMode 相机触发模式类TriggerModeInfo 相机触发设置信息类Utilities 用于获取系统信息(系统版本、内存等)VideoModes 单个相机图像格式信息类d) FlyCapture2 简单开发步骤1加载动态链接库和头文件需要包含的文件:FlyCapture
10、2include 下所有头文件(C 文件夹下是 C 语言需要的头文件,FC1 文件夹下是 FlyCapture 旧版本头文件)FlyCapture2libFlyCapture2.lib FlyCapture2libFlyCapture2GUI.lib在 ProjectSettingsLinkObject library modules 中加入 lFlyCapture2.lib FlyCapture2GUI.lib(release 和 debug 模式下都需要添加)在 ProjectSettingsC/C+Code GenerationUse run-time library 中选择 choos
11、e the option Multithreaded DLL (在 release 模式下) or Debug Multithreaded DLL (在 debug 模式下) ;2. 一般开发步骤1394 和 usb 相机:获取总线上相机个数和 indexBusManager busMgr; /总线信息unsigned int numCameras;error = busMgr.GetNumOfCameras( /获取总线上所有相机信息获取某一个相机 GUIDPGRGuid guid;error = busMgr.GetCameraFromIndex(i, /获取第 i 个相机的 GUID连接
12、相机Camera cam; /相机类error = cam.Connect( /连接相机设置回调、开始采集void SDKCallBack(Image *p, const void* pp) /回调函数定义举例UserCallBack(p-GetData(); /获取图像数据指针error = cam.StartCapture(SDKCallBack); /开始采集,允许没有回调函数更改参数(读写 shutter)北京凌云光视数字图像技术有限公司 10/ 10TEL: 010- 88400505 FAX:010-88400260 Email:北京市海淀区蓝靛厂南路 25 号 牛顿办公区南座
13、6 层 (100097)Property shutter(SHUTTER); /参数属性类 ,确定参数类型,详见SDK help,如果改 gain,则SHUTTER 替换为 GAINerror = cam.GetProperty( /获取相机 shuttershutter.absValue = 0.2; /shutter 值改为 0.2sshutter.absControl = TRUE; /采用绝对值输入shutter.autoManualMode = FALSE; /关闭自动,手动设置 shuttershutter.onePush = FALSE; /关闭 onePushshutter.o
14、nOff = TRUE; /shutter 有效shutter.present = TRUE;error = cam.SetProperty( /写入设置好的 shutter保存图片Image rawImage; /原始数据error = cam.RetrieveBuffer( /接收原始数据error = rawImage.Convert( PIXEL_FORMAT_BGRU, /转换成需要的格式char filename512; /文件名sprintf( filename, “%u-%d.bmp“, camInfo.serialNumber, imageCount );error = co
15、nvertedImage.Save( filename ); /保存图片停止采集、断开连接error = cam.StopCapture();error = cam.Disconnect();网口相机:(初始化和相机参数设置略有不同) 获取总线上相机个数和 indexBusManager busMgr;CameraInfo camInfo128;unsigned int numCamInfo = 128;error = BusManager:DiscoverGigECameras( camInfo, /可省略unsigned int numCameras;error = busMgr.GetNumOfCameras( 获取某一个相机 GUIDPGRGuid guid;error = busMgr.GetCameraFromIndex(i, 连接相机GigECamera cam;error = cam.Connect( 其余步骤同上,具体不同函数调用见 GigECamera 和 Camera 类说明