FlyCap2使用说明
一、硬件要求
a)OS:Window XP/7 32/64位,Ubuntu 8.04/10.04
b)数据线:1394线
二、接口定义
虚线左半部分为相机内部电路,右半部分是外部电路,需要在7和6之间加入上拉电压和负载电阻。
三、软件安装及连接
a)软件(windows版)安装前,要求电脑预装.Net Framework,推荐安装.Net Framework 3.5。
b)为避免软件冲突,建议卸载其他网口相机驱动,并确认网卡驱动为原版驱动。
c)推荐安装软件版本为FlyCapture2.1.3.5,下载链接:
https://www.wendangku.net/doc/b715519711.html,/support/display_download.aspx?ClassID=73&CompanyID=6
d)安装过程中需要进行选择的界面见下图:
图中选择I will use Fireware camereas。
四、软件使用
i.打开开始--程序--Point Grey Research—FlyCapture2—FlyCap2即可找到相机
Configure Selected是参数选择,OK确认进入采集。
b)常规连接
i.参数控制界面
Shutter,Gain,FrameRate默认自动调节,手动调节前,勾选掉Auto选项。
使用输出信号时按上图设置,如果使用触发信号,需要再勾选上Enable/disable trigger。
保存参数设置时,选择channel 1,点击save,恢复出厂设置时,选择Default,点击Restore。
c)更新firmware
i.打开开始--程序--Point Grey Research—FlyCapture2--Utilities—UpdatorGUI2
打开需要更新的firmware,点击Update即可。
五、SDK开发
a)FlyCapture2介绍
FlyCapture2是PointGrey公司相机配套的软件开发包。软件支持Microsoft Windows( XP vista win7 / x64 x86)、Linux Ubuntu,并且支持ActiveX,,DirectShow,TW AIN APIs。开发包包括:
?设备驱动(for windows)
?二次开发工具(SDK)
?多种示例程序及源代码
FlyCapture2特点如下:
?提供完整易用的用于采集、处理、保存和显示的链接库
?提供标准的C/C++/.NET 接口,方便相机与其他设备兼容和结合
?使用DMA减少请求的延迟和处理时间
?支持多线程编程
?提供控制相机的完整API
?提供Visual C++ 6.0和Visual Studio 2005示例程序及源代码
注:FlyCapture SDK必须配合FlyCapture自带的驱动使用,不支持第三方的驱动程序。
b)系统要求(软件)
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介绍
d)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); //连接相机
④设置回调、开始采集
void SDKCallBack(Image *p, const void* pp) //回调函数定义举例
{
UserCallBack(p->GetData()); //获取图像数据指针}
error = cam.StartCapture(SDKCallBack); //开始采集,允许没有回调函数
⑤更改参数(读写shutter)
Property shutter(SHUTTER); //参数属性类,确定参数类型,详见
SDK help,如果改gain,则
SHUTTER替换为GAIN error = cam.GetProperty(&shutter); //获取相机shutter
shutter.absValue = 0.2; //shutter值改为0.2s
shutter.absControl = TRUE; //采用绝对值输入
shutter.autoManualMode = FALSE; //关闭自动,手动设置shutter
shutter.onePush = FALSE; //关闭onePush
shutter.onOff = TRUE; //shutter有效
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, "%u-%d.bmp", camInfo.serialNumber, imageCount );
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;
error = cam.Connect(&guid);
④其余步骤同上,具体不同函数调用见GigECamera和Camera类说明