Basler相机windows Opencv开发1

basler Gige工业相机开发找了半天没找到合适自己的c++代码,最后发现pylon有不少例程。先记录下来。以备进一步开发。

1 软硬件准备:basler aca1600-20gm 相机,  win10 x64,  vs2013,opencv3.1

2 下载安装pylon,到basler官方网站下载适合自己相机的pylon版本(我的是pylon 5.0),安装的时候注意选择安装开发者模式。

3 确认成功安装pylon :给相机上电并用网线链接到电脑,修改电脑的ip,参考 http://wenku.baidu.com/link?url=YSn8ZllIH_eD32NZzZUVgqy3fSHXbMo6Wg7u-uHlNjeG4RoflhV2Xbw6L4BCi9RcWLZ6vr_82OWkWQ0nz6GWghUvd8Ys0QgYIeNFBpulvvG

4 找到 Basler\pylon 5\Development\Samples\C++ 文件夹,我选择的是默认安装,所以路径是C:\Program Files\Basler\pylon5\Development\Samples\C++打开工程因为我的相机是GigE接口,所以我打开PylonSamples_GigE.sln编译就可以运行啦。

 

各个工程的作用:

DeviceRemovalHandling 这个示例程序演示了如何移除相机设备。它还显示如何重新连接到已删除的设备.。

Grab 这个例子演示了如何抓取过程中采用cinstantcamera类图像。图像是抓住和异步处理,当应用程序处理一个缓冲区,缓冲区的下一个收购是平行进行的,cinstantcamera类使用一个缓冲池,从摄像头获取图像数据。缓冲区填充完毕后,可以从相机对象检索缓冲区进行处理.。在抓取结果中收集缓冲区和附加图像数据。抓取结果由智能指针在检索后保持.。当显式释放或智能指针对象被销毁时,缓冲区将自动重复使用.。

Grab_camera_EventsGigE :Basler GigEVision和IEEE 1394相机可以发送事件消息。例如,当传感器曝光完成后,相机可以将曝光结束事件发送到PC。
可接收由PC前的图像数据为成品曝光已完全转移。此示例说明如何在照相机事件消息数据时通知.
收到。
事件信息的自动检索和处理的instantcamera类。将事件消息所携带的信息暴露在摄像机节点映射中的参数节点中.
可以访问像“正常”相机参数。当接收到摄像机事件时,将更新这些节点.。您可以注册相机事件处理程序对象
当接收到事件数据时触发。
这些机制被证明为暴露结束和事件溢出事件。曝光结束事件进行下列信息:
* exposureendeventframeid:表示图像帧已暴露的数量。
* exposureendeventtimestamp:表示当事件发生。
* exposureendeventstreamchannelindex:表示图像数据的数据流用来转移暴露的框架。
事件溢出事件由照相机发送,作为事件正在被删除的警告.。该通知不包含有关已删除多少个或多个事件的特定信息.。
如果事件以非常高的频率产生,如果没有足够的带宽来发送事件,事件可能会被丢弃。
在这个示例中显示如何注册事件处理程序,指示由相机发送的事件的到来.。出于演示的目的,多个不同的处理程序进行分类,相同的事件。

Grab_ChunkImage Basler相机提供块特征:相机可以生成每个图像的某些信息,如帧计数器,时间戳,和CRC校验,这是附加到图像数据的“块”。
此示例说明如何启用块特性、如何抓取图像以及如何处理附加数据.。当相机处于块模式时,它将被划分成块的数据块传输.。第一个块总是图像数据.。当启用块特性时,图像数据块后面的块包含包含块特征的信息.。

Grab_MultiCast.cpp  此示例演示如何在多播模式下打开照相机.以及如何接收多播流。

Grab_MultipleCameras 这个例子演示了如何抓取和处理来自多个摄像机的图像,使用cinstantcameraarray类。 

Grab_Strategies 这个例程显示了使用即时相机抓取策略。

Grab_UsingBufferFactory此示例演示用户提供的缓冲工厂的使用.。 缓冲工厂的使用是可选的,仅用于高级用例.。如果您打算抓取外部提供的缓冲区,则只需要缓冲工厂.。

Grab_UsingExposureEndEvent 此示例演示如何使用曝光结束事件以加快图像获取.。例如,当传感器曝光完成后,相机可以发送一个曝光结束事件的PC。PC可以接收事件之前的图像数据的成品曝光已被完全转移。这可以用来避免不必要的延迟,例如在相关的图像数据传输完成之前,成像对象被进一步移动.。

Grab_UsingGrabLoopThread 此示例说明如何使用即时照相机类提供的抓取循环线程来抓取和处理图像.。 按下T获取一幅图像

GUI_ImageWindow 这个例子演示了如何显示图像使用cpylonimagewindow类。在这里,图像被抓取,分割成多个瓦片,每个平铺显示在一个单独的图像窗口。

ParametrizeCamera_AutoFunctions This sampleillustrates how to use the Auto Functions feature of Basler cameras 包括 自动gain onece GainAuto= Continuous' 自动曝光

ParametrizeCamera_Configurations此示例演示如何通过使用标准配置和注册示例配置事件处理程序来使用配置事件处理程序.。

 ParametrizeCamera_GenericParameterAccess.本示例演示使用genapi节点图的genapi表示配置相机的“通用”的方法::inodemap接口。名称和参数节点类型可以在巴斯勒塔程序员指南和API参考,在相机的用户手册,相机中的文件登记的结构和访问方法(如果适用),并利用塔查看器工具  x y offsetheight width

ParametrizeCamera_LoadAndSave 保存和读取相机参数!先读取后保存

ParametrizeCamera_LookupTable  This sampleprogram demonstrates the use of the Luminance Lookup Table feature.

ParametrizeCamera_NativeParameterAccess 和 gennic差不多? 设置?

ParametrizeCamera_Shading  只有线阵相机支持

ParametrizeCamera_UserSets  Demonstrateshow to use user configuration sets (user sets) and how to configure the camera    to start up with the user defined settings of user set1.    You can also configure your camera using the pylon Viewerand  store your custom settings in a user set of your choice

Utility_GrabAvi.  保存视频

Utility_Image This sampleillustrates how to use the pylon image classes CPylonImage andCPylonBitmapImage. 

Utility_ImageFormatConverter  This sampleillustrates how to use the image format   converter classCImageFormatConverter.

Utility_ImageLoadAndSave

 








你可能感兴趣的:(Basler相机windows Opencv开发1)