Basler工业相机python开发(Pypylon)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、相机类 InstantCamera
  • 二、图像事件处理类 ImageEventHandler
  • 总结


前言

做项目过程中需要对Basler相机进行二次开发,所以写一些记录给大家参考。
附上一些在其他地方看到的参考资料:

  1. Basler 工业相机与Python开发链接: link
  2. Basler 工业相机 Python开发采集数据、保存照片: link
  3. pypylon模块调用basler相机采集数据: link

一、相机类 InstantCamera

1. class InstantCamera (InstantCamera Params_Params)
# 提供方便的访问相机设备。

• 为访问相机功能建立一个单一的访问点。这个类可以在没有任何参数的情况下使用。相机使用相机设备的默认配置,可被覆盖。
• 处理Pylon设备的生存期,可被覆盖。
• 自动处理打开和关闭一个Pylon设备。
• 处理块数据解析,自动返回抓取结果中的块数据。
• 自动处理事件抓取,为事件回调提供了一个方便的接口,可被覆盖。
• 处理物理相机设备移除。
• 处理缓冲区的创建、重用和销毁。
• 抓取可以在调用者的上下文中完成,也可以使用额外的抓取循环线程。
• Instant Camera类可以通过派生或注册事件处理程序对象进行扩展。
其中主要的函数:

def Attach(self,*args)->"void":
# 将Pylon设备连接到InstantCamera

参数:
• pDevice-要连接的Pylon设备。
• cleanupProcedure-如果cleanupProcedure等于Cleanup_Delete,则在销毁Instant Camera对象时销毁Pylon设备。
• 如果当前连接了一个Pylon设备,则根据先前设置的清理过程值,将其销毁(DestroyDevice())或移除(DetachDevice())。
• 如果pDevice参数为NULL,则不再执行任何操作。OnAttach配置事件被触发。
• 附加新的Pylon设备。如果传递的Pylon设备是打开的,则相机事件的回调将在相机节点映射上注册。(这可能会失败)
如果传递的Pylon设备是打开的,则注册一个设备移除回调(这可能会失败)。访问修饰符(参见IPylonDevice:: open())将被取代为相机参数。
• OnAttached配置事件被触发。来自事件调用的可能的c++异常被捕获并忽略。通知所有事件处理程序。

Post:
• 如果传递给Pylon设备的指针为NULL,则Instant Camera对象处于“无设备连接”状态。
• 如果指针不是NULL,则连接传递的Pylon设备。
• 如果设置的清除过程等于Cleanup_Delete,则在销毁Instant Camera对象或附加新设备时销毁Pylon设备。
• 如果传递的Pylon设备是打开的,并且回调注册失败,则Instant Camera对象处于“未连接设备”状态。
• 设置了“由用户打开”标志,以防止在附加的Pylon设备已经打开时,在stopgrab()上关闭Pylon设备。
• 如果传递的Pylon设备打开,则可能引发异常。如果传递的Pylon设备关闭或为NULL,则不抛出C+异常。
• 该方法使用GetLock()提供的Lock进行同步。

def IsPylonDeviceAttached(self)->"bool":
# 返回Instant Camera对象的Pylon设备连接状态
def 

你可能感兴趣的:(python,pycharm,嵌入式硬件)