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

本文介绍工业机器视觉系统中Basler工业相机的应用,重点讲解了aCA2500-14gm型号的特性及Pylon-5.2.0 SDK的使用方法。通过Python库pypylon实现图像抓取与处理,提供了详细的代码示例。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

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

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

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

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

Pylon对应的pypylon是1.4.0版本。

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

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

"""
有趣的事情
没有结束
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()


多谢!美

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值