Sapera初级开发步骤
一. Sapera++介绍
Sapera++是Sapera LT为用户提供的API. Sapera++ 包含两大类:基础应用类(Basic Classes)和GUI类(GUI Classes)
1. 基础应用类:
提供了用户进行图像开发的基本函数
命名方式为Sap+类功能名
其结构如下图所示:
常用类:
SapAcquisition:控制与板卡相连接的设备
SapBuffer:操作buffer
SapBufferWith Trash:实时处理时建立trash buffer用于存放转换数据(常用于处理速度跟不上数据采集速度时)
SapTransfer:管理一般的传递过程
SapView:显示buffer中存储的内容至屏幕
2. GUI类:
提供了许多常用设置对话框
用户可根据自己的需要选用;其结构如下图所示
常用对话框:
CAbortDlg:等待对话框
CAcqConfigDlg:相机配置文件导入对话框
CAcqDlg:动态修改相机设置
CBufDlg:Buffer设置对话框
CLoadSaveDlg:导入与保存对话框
二. 开发步骤
1. 加载动态连接库步骤:
(1)使用Basic Classes:
① 在Project | Settings... | C/C++ | Preprocessor | Additional includedirectories 中加入路径C:\DALSA\Sapera\Classes\Basic;
②在Project|Addto Project | Files 中加入C:\DALSA\Sapera\Lib\SapClassBasic.lib 和 SapClassBasicD.lib;
③在 Project |Settings...| General中将SapClassBasic.lib 选为Exclude file from build;
④在Project |Settings... | C/C++ | Code Generation | Use run-time library中选择choose the option MultithreadedDLL (在release模式下) or Debug Multithreaded DLL (在debug模式下) ;
⑤在头文件中加入SapClassBasic.h
(2)使用GUI:
① 在Project | Settings... | C/C++ | Preprocessor | Additional includedirectories 中加入路径C:\DALSA\Sapera\Classes\Gui;
②在Project|Addto Project | Files 中加入C:\DALSA\Sapera\Lib\SapClassGui.lib 和 SapClassGuiD.lib;
③在 Project |Settings...| General中将SapClassBasic.lib 选为Exclude file from build for Win32 Release;
④ 在In Project | Settings... | C/C++ | Code Generation | Use run-timelibrary中选择choose theoption Multithreaded DLL (在release模式下) or Debug Multithreaded DLL (在debug模式下) ;
⑤在头文件中加入SapClassGui.h
2. 初始化与采集操作步骤:
①使用SapAcquisitionclass定义所需器件和相机配置文件;
②使用SapBufferclass(或SapBufferWithTrashClass)创建buffer来存储图像;
③使用SapViewclass分配显示区显示图像;
④使用SapTransferclass(或SpecializedTransfer Classes)进行采集;
⑤采集完成后释放所有资源
参考C:\DALSA\Sapera\Help\User'sManual-Acquiring Images 与Demo"GrabDemo"
3. 对buffer的操作
(1) 修改buffer大小:
参考C:\DALSA\Sapera\Help\User'sManual-Working with buffers- Reading and Writing a Buffer
(2) 子buffer的应用:
参考C:\DALSA\Sapera\Help\User'sManual- Working with buffers- Root and Child Buffers
(3) 获得buffer首地址及偏移量(常用于进行进一步图像处理):
参考C:\DALSA\Sapera\Help\User'sManual-Working with buffers- Reading and Writing a Buffer
三. 使用帮助文档与demo
如须获得完整的demo与帮助文档
选择full安装
并选择全部
帮助文档中的SaperaLT User's Manual提供Sapera LT的全面概要介绍;Sapera++ Programmer's Manual提供Sapera++ Basic 和 GUI classes中所有函数及功能介绍
可参考其进行编程工作
在C:\DALSA\Sapera\Demos\Classes\VC中提供了多个开发Demo供用户参考
* Grab Demo (Dialog Box Interface 对话框)
路径:\Sapera\Demos\Classes\Vc\GrabDemo\Release\GrabDemo.exe
功能:显示了基本的采集功能
允许获得连续或单帧图像
同时调整采集参数
* Grab Demo (Single Document Interface 单文档)
路径:\Sapera\Demos\Classes\Vc\GrabDemoSDI\Release\GrabDemoSDI.exe
功能:显示了基本的采集功能
允许获得连续或单帧图像
同时调整采集参数
* Grab Demo (Multiple Document Interface 多文档)
路径:\Sapera\Demos\Classes\Vc\GrabDemoMDI\Release\GrabDemoMDI.exe
功能:显示了基本的采集功能
允许获得连续或单帧图像
同时调整采集参数;
可打开多窗口来同步获得不同相机的显示图像
* Sequential Grab Demo
路径:\Sapera\Demos\Classes\Vc\SeqGrabDemo\Release\SeqGrabDemo.exe
功能:采集序列图像至内存而后显示
程序允许录制多段视频
并可存储、导入AVI文件
每一图像存储于不同buffer中
可通过对话框设置buffer大小等参数
* Bayer Demo
路径:\Sapera\Demos\Classes\Vc\BayerDemo\Release\BayerDemo.exe
功能:显示Bayer 转换功能
进行Bayer转换参数设置
* Flat-field Demo
路径:\Sapera\Demos\Classes\Vc\FlatFieldDemo\Release\FlatFieldDemo.exe
功能:显示平场校正功能
平场校正Flat FieldCorrection (FFC) 包括调整模式噪声FixedPattern Noise (FPN),像素置换 Pixel Replacement, Photo Response Non Uniformity (PRNU), 和斑点校正 Shading Correction.
* I/O Demo
路径:\Sapera\Demos\Classes\Vc\IODemo\Release\IODemo.exe
功能:显示一般I/O设备的使用
允许监视当前输入输出状态
改变高低极性状态;允许监视输入中断并记录中断数
* GigE-Vision Camera Demo
路径:\Sapera\Demos\Classes\Vc\GigeCameraDemo\Release\GigeCameraDemo.exe
功能:怎样使用DALSAGigE Vision(tm) 相机获得图像. 可导入相机配置文件