Sapera-DevelopHelp-senior
更新时间:2023-08-05 18:39:01 阅读量: 实用文档 文档下载
Sapera Develop Help
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
Sapera Develop Help
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
Sapera Develop Help
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
功能:操作CAB资源的功能,更详细帮助见Sapera CAB Programmer’s Manual. SapCab
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
Sapera Develop Help
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
Sapera Develop Help
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
功能:操作转换节点
Sapera Develop Help
2. GUI类:
提供了许多常用设置对话框,用户可根据自己的需要选用;其结构如下图所示。
Sapera Develop Help
二.例程介绍
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)
Sapera Develop Help
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)
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
Sapera Develop Help
常用操作 编程步骤介绍
一、加载动态连接库步骤:
1. 使用Basic Classes:
① 在Project | Settings… | C/C++ | Preprocessor | Additional include directories 中加入路
径C:\DALSA\Sapera\Classes\Basic;
②在Project|Add to 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 Multithreaded DLL (在release模式下) or Debug Multithreaded DLL (在debug模式下) ; ⑤在头文件中加入SapClassBasic.h。
2. 使用GUI:
① 在Project | Settings… | C/C++ | Preprocessor | Additional include directories 中加入路
径C:\DALSA\Sapera\Classes\Gui;
②在Project|Add to 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-time library中选择choose
the option Multithreaded DLL (在release模式下) or Debug Multithreaded DLL (在debug模式下) ;
⑤在头文件中加入SapClassGui.h。
二.开发的一般步骤:
1.为对象分配内存
2.为对象创建资源
3.释放对象资源
4.释放对象内存
三.获得图像:
1. 获得图像所需的类:
SapAcquisition 或SapAcqDevice:当使用相机连接采集卡采集时用 SapAcquisition
class ;当相机直接连接电脑时(比如GigE相机)用SapAcqDevice class ;
SapBuffer: 用来存储数据,可以选择buffer的存储类型;
SapTransfer: 用来连接外部的获取图像设备和buffer,并使采集同步。
2. 实现图像采集的编程步骤:
第一步:使用SapAcquisition class确定采集设备与相机配置文件;
第二步:使用SapBuffer class创建buffer存储图像;
第三步:使用SapView class分配显示对象显示图像;
第四步:使用SapTransfer class分配转换对象(transfer object)用于连接采集设备与图
像buffer。当采集过程中需要处理或显示图像时,要调用transfer 回调
Sapera Develop Help
(callback)功能。
第五步:使用各自类的Create功能为所有对象分配资源(acquisition, view, buffer, transfer)
第六步:使用SapTransfer class采集图像
第七步:当采集完毕后释放所有资源。
3. 图像采集具体例子:
(1)基本图像采集过程
功能:创建、实例化、释放各个对象
路径:C:\DALSA\Sapera\Help\User’s Manual – Acquiring Images – Frame-Grabber
Acquisition Example – Steps to perform an acquisition
备注: 其中的“void XferCallback(SapXferCallbackInfo *pInfo)”函数在每一帧转移完成后
自动调用一次,用户可在此内添加图像处理操作或显示操作
(2) 更改采集参数
实例1:
功能:使用SapAcquisition::SetParameter单独修改“独立参数”
路径:C:\DALSA\Sapera\Help\User’s Manual – Acquiring Images – Modifying the
Frame-Grabber Parameters – Modifying Parameters Individually
备注: 如需得到各参数定义等详细信息,请参考Sapera++ Programmer’s Manual
and the Sapera Basic Modules Reference Manual帮助文档
实例2:
功能:成组修改采集参数
路径:C:\DALSA\Sapera\Help\User’s Manual – Acquiring Images – Modifying the
Frame – Grabber Parameters – Modifying Parameters by Group
实例3:
功能:使用LUT
路径:C:\DALSA\Sapera\Help\User’s Manual - Acquiring Images – Using an Input
Lookup Table
备注:使用函数SapAcquisition::GetLut;SapAcquisition::ApplyLut
实例4:
功能:使用Genie M640 相机采集
备注:相机配置文件可使用相机的默认设置,还可使用CamExpert自行设置,在
SapAcqDevice类初始化后,创建buffer,并在SapAcqDevice类和SapBuffer
类之间创建转移路径(此例中使用SapAcqDeviceToBuf)。要想使转换停止,
须调用SapTransfer::Wait
(3)相机参数的获得与修改
实例1:
功能:获得相机信息
路径:C:\DALSA\Sapera\Help\User’s Manual – Acquiring Images – Modifying the
Camera Features – Accessing Feature Information and Values
备注:SapAcqDevice 类允许直接修改相机参数文件,一些参数须同时一起修改
实例2:
功能:改变相机参数
Sapera Develop Help
路径:C:\DALSA\Sapera\Help\User’s Manual - Acquiring Images-Modifying the
Camera Features-Writing Feature Values by Group
备注:由于相机的许多参数需同时修改,SapAcqDevice 类将这一系列参数值先存
在一个“internal cache”中,之后一起将数据送入相机。
四.图像显示操作
1.图像显示操作所需的类:
SapDisplay: 管理硬件显示设备实际资源
SapBuffer: 所要显示的数据
SapView: 连接显示与buffer,并同步显示操作
2.图像显示实例:
(1)Display Example
功能:显示图像
路径:C:\DALSA\Sapera\Help\User’s Manual - Displaying Images - Display Example
(2)Displaying in a Windows Application
功能:使用Windows应用程序显示图像
路径:C:\DALSA\Sapera\Help\User’s Manual -Displaying Images-Displaying in a Windows
Application
备注:SapView Class 包含3个功能:OnPaint, OnMove, and OnSize,但不提供一些改变
显示区的常用功能,如滚动条等,需使用时调用CImageWnd Class中的相应功能。
详细使用见下面的例子
五.对Buffer的操作
1. 子Buffer操作
功能:子buffer的建立与ROI区域选择
路径:C:\DALSA\Sapera\Help\User’s Manual – Working with buffers – Root and Child
Buffers
2. Buffer 类型介绍
路径:C:\DALSA\Sapera\Help\User’s Manual – Working with buffers – Buffer Types
3. 读写buffer数据信息
路径:C:\DALSA\Sapera\Help\User’s Manual – Working with buffers –Reading and Writing
a Buffer
事例1:读入数据至buffer
事例2:Read and Write methods
事例3:通过GetAddress得到数据首地址,并得到buffer尺寸、格式、偏移量来进
行进一步图像处理工作(要首先获得首地址再得到偏移量)。
4. buffer的建立与释放方法
路径:C:\DALSA\Sapera\Help\User’s Manual – Introducing the Sapera LT API – Object
initialization and cleanup
事例1:使用指针创建
事例2:使用堆栈创建
事例3:在已存在的对象上创建
正在阅读:
Sapera-DevelopHelp-senior08-05
《数控机床结构及应用》复习题11-07
高一文理分科分班计划07-28
寒假里的收获作文500字06-18
最新审定青岛版小学数学四年级上册第七单元混合运算(精品)02-27
建筑工程质量控制毕业设计论文 - 图文03-02
【必备】教学计划模板合集七篇04-13
创先争优活动开展情况总结105-18
那一刻我懂了爱的力量作文350字07-02
振动和波动要点习题06-15
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- DevelopHelp
- Sapera
- senior