在进行双目视觉实验时,首先需要进行双目相机的标定、校正畸变等操作,标定是第一步,也是非常重要的一步,需要现标定单目相机(摄像头),再进行双目标定,如果有其他设备,如雷达之类的,再标定双目+雷达,最后和汽车或者机械臂标定在一起。
为了实现标定,需要先存取含有标定板的棋盘格图像,在这里先码一个简单的读取图像并保存的代码,供大家学习使用。
代码如下:
import cv2
'''
读取相机图像并保存
'''
camera = cv2.VideoCapture(0) # camera是自己命名的相机名字,可更改,‘0’一般是打开电脑自带摄像头,‘1’是打开外部摄像机(只有一个摄像头的情况);
i = 0 # 记录图片顺序;
n = None # 可以先初始化一下,没有也行,我感觉python完全可以没有这步;
while True: # while True或 while 1,都可以;
(grabbed, img) = camera.read()
cv2.imshow('camera-image', img) # camera-image是自己命名的图像框名,可更改;
if cv2.waitKey(1) & 0xFF == ord('j'): # 按j保存一张图片;
i += 1
n = str(i)
filename = str('./image'+n+'.jpg') # 在当前目录下,保存图片,并按顺序命名;
cv2.imwrite(filename, img)
print('保存图片:', filename)
if cv2.waitKey(1) & 0xFF == ord('q'): # 按q离开,关闭相机;怎么感觉关闭程序反应好慢啊
break
cv2.destroyAllWindows() # 销毁窗口
camera.release() # 释放相机