Sapera 帮助文档
简介:Sapera LT 是一套用于图像采集、显示和控制的独立于硬件以外的 C 和 C++ 软件
库,支持所有 DALSA Coreco 硬件平台。它的综合功能集包括程序可移植性、多样
化的相机控制、灵活的显示和管理功能,以及易于使用的应用开发向导。Sapera LT 与
Microsoft Visual Studio C/C++、.Net、Visual Basic 6.0 和 Borland C++ Builder 兼容,
支持 Windows XP、2000 和 NT 平台。
一.Sapera++介绍
Sapera++是 Sapera LT 为用户提供的 API. Sapera++ 包含两大类:基础应用类(Basic
Classes)和 GUI 类(GUI Classes)。
1. 基础应用类:
提供了用户进行图像开发的基本函数,命名方式为 Sap+类功能名,其结构如下图所示:
Sapera Basic Class 函数功能介绍:
Data Classes:
功能:下属多个数据类,每一个数据类管理了一种特定数据类型
下属数据类:SapData Class
SapDataHSI Class
SapDataHSV Class
SapDataFloat Class
SapDataFPoint Class
SapDataFRGB Class
SapDataMono Class
SapDataPoint Class
SapDataRGB Class
SapDataRGBA Class
SapDataYUV Class
SapAcquisition
功能:控制与板卡相连接的采集设备
常用函数:SapAcquisition::SapAcquisition
SapAcquisition::Create
SapAcquisition::Destroy
SapAcquisition::ApplyLut
SapAcquisition::GetParameter, SapAcquisition::SetParameter
SapAcquisition::GetSignalStatus
SapAcquisition::IsSignalStatusAvailable
SapAcqCallbackInfo
功能:存储 SapAcquisition 类回调的内容
常用函数:SapAcqCallbackInfo::GetContext
SapAcqCallbackInfo::GetSignalStatus
SapAcqDevice
功能:由设备读、写信息,还可直接发送、寄存事件至设备。常用于直接连接电脑的相
机(如 GigE 相机)
常用函数:SapAcqDevice::SapAcqDevice
SapAcqDevice::Create
SapAcqDevice::Destroy
SapAcqDevice::GetConfigFile, SapAcqDevice::SetConfigFile
SapAcqDevice::UpdateFeaturesFromDevice
SapAcqDeviceCallbackInfo
功能:存储 SapAcqDevice 类回调的内容
常用函数:SapAcqDeviceCallbackInfo::SapAcqDeviceCallbackInfo
SapAcqDeviceCallbackInfo::GetAcqDevice
SapBayer
功能:Bayer 转换操作(分为软件和硬件实现两种)
常用函数:SapBayer::WhiteBalance
SapBayer::EnableLut
SapBayer::GetAlign, SapBayer::SetAlign
SapBayer::GetWBGain, SapBayer::SetWBGain
SapBuffer
功能:操作 buffer 资源
常用函数:SapBuffer::SapBuffer
SapBuffer::Create
SapBuffer::Clear
SapBuffer::Destroy
SapBuffer::GetParameter, SapBuffer::SetParameter
SapBuffer::GetPitch
SapBuffer::GetPixelDepth, SapBuffer::SetPixelDepth
SapBuffer::GetIndex, SapBuffer::SetIndex
SapBuffer::GetCount, SapBuffer::SetCount
SapBuffer::GetFrameRate, SapBuffer::SetFrameRate
SapBuffer::Next
SapBufferRemote
功能:Buffer 远程使用(需用 SapBuffer::Register 事先定义)
常用函数:SapBufferRemote::SapBufferRemote
SapBufferRemote::Create
SapBufferRoi
功能:在已存在的 SapBuffer 对象中创建方形 ROI 区域
常用函数:SapBufferRoi::SapBufferRoi
SapBufferRoi::Create
SapBufferWithTrash Class
功能:建立称为 trash buffer 的附加资源。常用于实时图像处理操作中,当数据传送速
度比处理速度快时,图象将被保存在 trash buffer 中,直到能够稳定输出
常用函数:SapBufferWithTrash::SapBufferWithTrash
SapBufferWithTrash::Create
SapCab
功能:操作 CAB 资源的功能,更详细帮助见 Sapera CAB Programmer’s Manual.
SapCounter
功能:记录事件,可记录外部信号或内部信号(如硬件时钟)
常用函数:SapCounter::SapCounter
SapCounterCallbackInfo
功能:存储 SapCounter 类回调的内容
常用函数:SapCounterCallbackInfo::SapCounterCallbackInfo
SapCounterCallbackInfo::GetCounter
SapDisplay
功能:操作默认显示资源
常用函数:SapDisplay::Create
SapDisplay::GetDC
SapDisplay::GetWidth
SapDsp
功能:操作 DSP 资源
SapFeature
功能:得到 SapAcqDevice 类的特征信息,如姓名、类型、连接模式等
使用 SapAcqDevice::GetFeatureInfo 访问
常用函数:SapFeature::GetLocation, SapFeature::SetLocation
SapFlatField
功能:单色图像平场校正功能
常用函数:SapFlatField::ComputeGain
SapFlatField::ComputeOffset
SapGio
功能:控制输入和输出设备使之读写同步,常与 SapCounter 联合使用读取 I/O 设备的状
态
常用函数:SapGio::AutoTrigger
SapGio::EnableCallback
SapGioCallbackInfo
功能:存储 SapGio 类回调的内容
常用函数:SapGioCallbackInfo::GetPinNumber
SapGraphic
功能:在图像中绘制或书写文字(首先通过 SapView::GetDC 获得句柄)
常用函数:SapGraphic::Text
SapLocation
功能:识别 Sapera server/resource 对(物理设备的抽象表示)
常用函数:SapLocation::GetResourceIndex
SapLocation::GetServerName
SapLut
功能:管理 lookup table(首先使用 SapAcquisition::GetLut 获得 SapLut 对象,操作完成
LUT 后使用 SapAcquisition::ApplyLut 记录)
常用函数:SapLut::Arithmetic
SapLut::BinaryPattern
SapLut::Threshold
SapManager
功能:描述当前系统上的 Sapera 资源,同时包括错误管理功能
常用函数:SapManager::GetCommandTimeout, SapManager::SetCommandTimeout
SapManCallbackInfo
功能:存储 SapManager 类回调的内容
常用函数:SapManCallbackInfo::GetErrorMessage
SapPerformance
功能:基准评估功能,评估一个 buffer 所占用的时间
常用功能:SapPerformance::GetTimeMicro
SapPerformance::Reset
SapPixPro
功能:操作像素处理设备,作为中间转换节点,允许数据由采集设备传递到下一个转换
节点
SapPixProParams
功能:存储 SapPixPro 类回调的内容
SapProcessing
功能:用于管理用户自己的 processing
SapProCallbackInfo
功能:存储 SapManager 类回调的内容
SapTransfer
功能:管理转移过程
常用函数:SapTransfer::Create
SapTransfer::Freeze
SapTransfer::Grab
SapTransfer::Snap
SapTransfer::Wait
SapTransfer::Abort
SapTransfer::IsGrabbing
SapTransfer::GetPair
Specialized Transfer Classes
功能:特别转换类(一系列从属于 SapTransfer 的类,使用户方便操作许多常用的转移
节点)
常用转换类:SapAcqToBuf Class
SapAcqDeviceToBuf Class
SapCabToBuf Class
SapBufToBuf Class
SapAcqToCab Class
SapCabToCab Class
SapBufToCab Class
SapView
功能:通过 SapDisplay 对象显示存放在 SapBuffer 中的资源,SapView 和 SapTransfer
的同步性使得能够实时显示 buffer 中的数据而不会出现丢失数据的情况。
常用函数:SapView::SapView
SapView::Show
SapView::Create
SapView::Destroy
SapView::GetDC
SapView::GetDisplay, SapView::SetDisplay
SapView::OnHScroll
SapView::OnMove
SapView::OnPaint
SapViewCallbackInfo
功能:存储 SapView 类回调的内容
SapXferCallbackInfo
功能:存储 SapTransfer 类回调的内容(一帧图像转移完成后自动调用 XferCallback)
常用函数:SapXferCallbackInfo::GetContext
SapXferCallbackInfo::IsTrash
SapXferPair
功能:描述了 SapTransfer class 的一对源与目的地
常用函数:SapXferPair::GetFramesPerCallback, SapXferPair::SetFramesPerCallback
SapXferParams
功能:存储 SapTransfer 类需传递的参数信息
SapXferNode
功能:操作转换节点
2. GUI 类:
提供了许多常用设置对话框,用户可根据自己的需要选用;其结构如下图所示。
Sapera GUI 介绍
名 称
CAbortDlg
CAcqConfigDlg
CAcqDlg
CAScanDlg
CBayerOptionsDlg
CBufDlg
CCabDlg
CCompDlg
CDspDlg
CFlatFieldDlg
CGioInputDlg
CImageWnd
CLoadSaveDlg
CLScanDlg
CPixProDlg
CViewDlg
功
能
是 SapTransfer::Wait 功能的改进,允许中断后等待不确定的时间
导入相机配置文件(CCF),建立新的 SapAcquisition 对象,可调用
CAcqConfigDlg:: GetAcquisition 得到此文件
动态修改采集设备参数
动态修改面阵相机参数
Bayer 转换参数选择对话框
改变 SapBuffer 对象的参数
动态修改 CAB 参数
动态修改合成视频输入信号参数
选择文件导入 DSP 内存
操作平场校正
获得/设置输出设备信息
操作图像显示窗口、滚动条、ROI 区域等
保存/导入图像至 SapBuffer 对象
动态修改线阵相机参数
修改 SapPixPro 对象的参数
动态修改显示区域
二.例程介绍
1.
examples 介绍
Sapera\Examples\Classes\SapExamples.dsw (for Visual C++ 6.0)
Sapera\Examples\Classes\SapExamples_2003.sln (for Visual Studio .NET 2003)
Sapera\Examples\Classes\SapExamples_2005.sln (for Visual Studio 2005)
Sapera\Examples\Classes\SapExamples.bpg (for Borland C++ Builder)
FileLoadCPP
功能:演示由磁盘加载图片至 buffer 并显示。Buffer 根据图像文件格式进行创建。能够加载
多种类型的图像文件(如 monochrome, RGB, or YUV)。此例使用 Sapera C++ API。
FileLoadMFC
功能:与 FileLoadCPP Example 功能一致,但使用了 Sapera++ GUI 浏览文件夹。
GrabCPP
功能:由选定相机采集图像至 buffer 中并显示。Buffer 根据相机设置进行创建,任何相机
(CameraLink 或 GigE 相机)都能适用。此例使用 Sapera C++ API。
GrabLut
功能:保存、载入 lookup-table 至硬件过程 hardware processing engine,并将图像进行所选
Lut 的处理并显示。
GrabMFC
功能:与 GrabCPP Example 功能一致,但使用了 Sapera++ GUI。
GrabMFC
功能:与 GrabCPP 功能一致,但使用 GUI Sapera++类,通过对话框选择板卡与相机。
ColorSplit
功能:显示怎样分裂和融合彩色图像至单色部分。如载入一 RGB 图像,将之分为 3 个单色
部分,而后分别对单色部分进行图像处理,处理后融合为 RGB 图像进行输出。
FindGigECamera
功能:检测所有已连接的 GigE 相机名称、序列号、服务名等,通过改变代码,可实现改变
相机名称的功能。
GigECameraLut
功能:由已选择的 GigE 相机采集图像至内存,并显示怎样使能、保存和载入 lookup-table
至硬件 hardware processing engine,并显示经过所选 Lut 变换后的图像。
GigECameraEvents
功能:使用 CorAcqDevice 列出所有可用设备
GigEAutoWhiteBalance
功能:使用 CorAcqDevice 在 GigE 彩色相机中应用自动白平衡,可更改 buffer 设置并存储原
始设置,并给出怎样通过已选择的 GigE 相机采集、保存图像并显示。
2. Demos 介绍
Sapera\Demos\Classes\Vc\SapDemos.dsw (for Visual C++ 6.0)
Sapera\Demos\Classes\Vc\SapDemos_2003.sln (for Visual Studio .NET 2003)
Sapera\Demos\Classes\Vc\SapDemos_2005.sln (for Visual Studio 2005)
Sapera\Demos\Classes\Vc\SapDemos.bpg (for Borland C++ Builder)
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 Field Correction (FFC) 包括调整模式噪声 Fixed
Pattern 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
功能:怎样使用 DALSA GigE Vision™ 相机获得图像. 可导入相机配置文件
3. ActiveX 控件
Sapera\Demos\ActiveX\Vb6\SapActiveXDemos.vbg (for Visual Basic 6.0)
Sapera\Demos\ActiveX\.NET\SapActiveXDemos_2003.sln (for Visual Studio .NET 2003)
Sapera\Demos\ActiveX\.NET\SapActiveXDemos_2005.sln (for Visual Studio 2005)
Sapera\Demos\ActiveX\Delphi\SapActiveXDemos.bpg (for Borland Delphi 7)
对 ActiveX 控件的使用操作详见 Sapera LT ActiveX Controls Manual