继续创造,加速成长!这是我参与「日新方案 10 月更文应战」的第6天,点击查看活动概况
1 basler工业相机介绍与驱动装置
1.1 basler介绍
1、basler工业相机是德国品牌,从驱动和衔接上感觉要比dalsa的相机更好衔接和运用,并且basler自带的驱动pylon Viewer
能够保存视频 和 保存接连的视频帧图片
,比较便利对相机进行测验工作。而dalsa的驱动CamExpert
假如要保存接连的帧图片,还必须要根据接口自己去写,这样就有些耽搁测验的进度!
2、20220907 周三,去席总哪里拿了一个baslar的面阵是非相机
3、相机型号为basler acA1600-20gm,现在该相机现已停产(参阅)!
- 该相机的用户手册下载
里边有该相机的参数介绍,相机的设计图,相机电源针脚图等介绍。
1.2 basler驱动的装置
1、装置baslar驱动Basler_pylon_5.0.9.10388.exe
如下,需要挑选相机的衔接接口
,如下,一共有四种:
- USB 接口的相机
- GigE 接口的相机(
运用网线衔接,一般工业相机运用的都是千兆网线
) - FireWire 接口的相机
- Camera Link 接口的相机
每个相机接口外观如下所示:
2、驱动默许的装置途径为:C:\Program Files\Basler\pylon 5
2 basler相机衔接
这儿我以basler 面阵是非相机acA1600-20gm
为例说明,(该相机是GigE接口,即运用网线进行衔接),其他相机也是如此,没有什么区别。
1、翻开pylon IP Configurator应用程序
2、首先在指令行下运用ipconfig指令
查看自己以太网的IP地址,我的是192.168.1.22
,因而只需要把相机的IP地址配置成同网段的192.168.1.xxx
即可衔接,如下:
3、然后翻开数据收集软件pylon Viewer软件
,此刻能够看到GigE下衔接的相机Basler acA1600-20gm
(红色的圆按钮便是数据收集按钮!)
3 相机运用pylon Viewer软件收集视频或图片数据
1、挑选视频录制或接连帧的照片收集
1)点击工具栏中的红色按钮
,挑选:
- Video (AVI)录制视频收集
- Sequence of still images:接连的帧照片收集
2)视频收集窗口翻开如下:
4 在pylon Viewer中调理相机参数设置
1、翻开View-Features (Basler acA1600-20gm)
就能够在左下方看到对应的窗口,此刻能够在里边设置相机的触发方式、白平衡等等参数
!
5 basler相机的python接口
pypylon库包是basler官方提供的basler的相机的python接口,装置方式:
pip install pypylon
5.1 运用python pypylon库包调用basler相机
1、衔接上相机之后,就能够运用如下的pylon接口
调用basler相机进行数据收集了
。如下是读取摄像头的每一帧数据并保存!(参阅)
from pypylon import pylon
import cv2
# conecting to the first available camera
camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice())
# Grabing Continusely (video) with minimal delay
camera.StartGrabbing(pylon.GrabStrategy_LatestImageOnly)
converter = pylon.ImageFormatConverter()
# converting to opencv bgr format
converter.OutputPixelFormat = pylon.PixelType_BGR8packed
converter.OutputBitAlignment = pylon.OutputBitAlignment_MsbAligned
i = 0
while camera.IsGrabbing():
grabResult = camera.RetrieveResult(1000, pylon.TimeoutHandling_ThrowException)
i += 1
if grabResult.GrabSucceeded():
# Access the image data
image = converter.Convert(grabResult)
img = image.GetArray()
cv2.namedWindow('title', cv2.WINDOW_NORMAL)
cv2.imshow('title', img)
cv2.imwrite(r'D:\dataset\test_data\%06d.jpg'%i, img)
k = cv2.waitKey(1)
if k == 27:
break
grabResult.Release()
# Releasing the resource
camera.StopGrabbing()
cv2.destroyAllWindows()
6 相机保存图片存储巨细的核算
bmp格局图片存储巨细核算
由于,bmp是位图(bitmap)
便是原始数据,数据是没有通过紧缩的,jpg和png都是通过紧缩的格局,因而不能够直接核算出他们的存储巨细
1、首选确认bmp图画的位深
,如下示例bmp图画的位深为24位
留意:
一个字节等于八位:
1Byte=8bit
2、因而bmp格局图片的存储巨细为:
bmp格局图片存储巨细=whbit_deep(单位bit)bmp格局图片存储巨细=w\times h \times bit\_deep(单位bit)
因而上图图片的存储巨细为:
存储巨细=1626123624bit8=6029208Byte=6029208Byte1024=5887.8984375KB=5887.8984375KB1024≈5.7499MB存储巨细=\frac{1626\times 1236 \times 24bit}{8}=6029208 Byte=\frac{6029208 Byte}{1024}=5887.8984375KB=\frac{5887.8984375KB}{1024} \approx 5.7499MB
能够看到我们核算出的巨细和图片信息显现的5.75MB
是保持一致的!
3、其他格局
一般其他格局图片的位深
:
- jpg格局是RGB通道,位深是24
- png格局是RGBA通道,位深是32
可是jpg和png图画是通过紧缩的,因而存储巨细会比bmp格局小许多,比方一张外表bmp格局图片或许9MB巨细,保存成png格局或许只有200KB巨细!(当然详细巨细是多少,应该是和紧缩的方式密切相关的,紧缩越多,图片存储巨细就越小,这样图画的质量也就越差!)
参阅:www.jianshu.com/p/3eceec14f… 参阅:blog.csdn.net/augustme/ar… 参阅:blog.csdn.net/weixin_4364…