Python之OpenCV 005 工业相机Basler之图像采集

工业机器视觉系统2D应用用到Basler(德国),Baumer(瑞士),ImageSource(台湾),大恒和海康等等牌子工业相机。

Basler(巴斯勒)是比较常用的,性价比高。aCA2500-14gm是非常常用的500百万GigE网络口圈帘黑白工业相机。不到3K的价格性能非常的稳定。

Python之OpenCV 005 工业相机Basler之图像采集_第1张图片

相机的SDK是Pylon-5.2.0,是Pylon不是Python,它们俩有点相同,但是是没有任何关系的。

这个SDK有C,C++,C#的开发包,但是没有Python的。在Github上有一个pypylon项目,可以用。

Pylon对应的pypylon是1.4.0版本。

Python之OpenCV 005 工业相机Basler之图像采集_第2张图片

下载代码直接安装就可以了。

之后就可以用下面代码测试一下了。

"""
有趣的事情
没有结束
2020/4/2 16:28
"""
from pypylon import pylon
import numpy as np
import cv2 as cv

# 连接Basler相机列表的第一个相机
camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice())

# 开始读取图像
camera.StartGrabbing(pylon.GrabStrategy_LatestImageOnly)
converter = pylon.ImageFormatConverter()

# 转换为OpenCV的BGR彩色格式
converter.OutputPixelFormat = pylon.PixelType_BGR8packed
converter.OutputBitAlignment = pylon.OutputBitAlignment_MsbAligned

while camera.IsGrabbing():
    grabResult = camera.RetrieveResult(5000, pylon.TimeoutHandling_ThrowException)

    if grabResult.GrabSucceeded():
        # 转换为OpenCV图像格式
        image = converter.Convert(grabResult)
        img = image.GetArray()
        cv.namedWindow('title', cv.WINDOW_NORMAL)
        cv.imshow('title', img)
        k = cv.waitKey(1)
        if k == 27:
            break
    grabResult.Release()

# 关闭相机
camera.StopGrabbing()
# 关闭窗口
cv.destroyAllWindows()


多谢!美

 

你可能感兴趣的:(Python之OpenCV)