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:在已存在的对象上创建

本文来源:https://www.bwwdw.com/article/6o3m.html

Top