持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,参考)!
里面有该相机的参数介绍,相机的设计图,相机电源针脚图等介绍。
1.2 basler驱动的安装
1、安装baslar驱动Basler_pylon_5.0.9.10388.exe
如下,需要选择相机的连接接口
,如下,一共有四种:
- USB 接口的相机
- GigE 接口的相机(
使用网线连接,一般工业相机使用的都是千兆网线
) - FireWire 接口的相机
- Camera Link 接口的相机
每个相机接口外观如下所示:
2、驱动默认的安装路径为:C:Program FilesBaslerpylon 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:datasettest_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格式图片存储大小=w×h×bit_deep(单位bit)bmp格式图片存储大小=wtimes h times bit_deep(单位bit)
因此上图图片的存储大小为:
存储大小=1626×1236×24bit8=6029208Byte=6029208Byte1024=5887.8984375KB=5887.8984375KB1024≈5.7499MB存储大小=frac{1626times 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…