【工业视觉检测1----基于Python的工业相机算法部署】

0、前言

工业视觉检测相关的项目应用很多,但是相关的资料较为零散,且多为C++部署的项目,Python相关的少之又少。故进行整理,此篇包含Python工业部署的诸多方面,如多线程下的多相机并行处理、相机的IO触发等。
所用相机为海康工业相机,镜头、光源等调试过程均略去,在此仅讨论程序方面。

1、设备枚举及排序

程序主体参考为海康MVS中附带的官方例程,安装MVS软件后,在.\MVS\Development\Samples\Python\路径中,可以找到相应的Python例程GrabImage.py,整体实现的功能包括取流,IO端口的读写等操作。

示例程序会读取与电脑连接的网口设备,并将设备的信息保存在deviceList中,然后会将设备的类型及IP地址打印出来。

为了便于算法指定相应的设备,根据设备的IP地址的末位进行排序,即使用sorted()函数,对nip4排序,重新生成设备列表。
相关程序如下

######对设备使用nip4  IP地址的最后一段进行重新排序
devices_with_nip4 = []
for i in range(0, deviceList.nDeviceNum):
    mvcc_dev_info = cast(deviceList.pDeviceInfo[i], POINTER(MV_CC_DEVICE_INFO)).contents
    if mvcc_dev_info.nTLayerType == MV_GIGE_DEVICE:
        nip4 = (mvcc_dev_info.SpecialInfo.stGigEInfo.nCurrentIp & 0x000000ff)
        devices_with_nip4.append((mvcc_dev_info, nip4))
sorted_devices_with_nip4 = sorted(devices_with_nip4, key=lambda x: x[1])
# 重新生成 deviceList.pDeviceInfo
for i, (dev_info, nip4) in enumerate(sorted_devices_with_nip4):
    deviceList.pDeviceInfo[i] = cast(pointer(dev_info), POINTER(MV_CC_DEVICE_INFO))

2、设备实例创建

进一步,根据重新生成的设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值