我这里使用的版本是MATLAB R2016a
具体软件自己去度娘找哈
破解就花费了我大半天
这里可以给你(有点小水印无伤大雅)
用A4纸打印出来
奉劝大家不要贪小便宜哈,得买个一百来块的,要不然数据极度不准确,而且还难用
我买了这个,150
打开你们可爱的pycharm
安装opencv
写入代码
import cv2
video = cv2.VideoCapture(1 + cv2.CAP_DSHOW)
width = 2560
high = 720
mid = width // 2
video.set(cv2.CAP_PROP_FRAME_WIDTH, width)
video.set(cv2.CAP_PROP_FRAME_HEIGHT, high)
w = video.get(cv2.CAP_PROP_FRAME_WIDTH)
h = video.get(cv2.CAP_PROP_FRAME_HEIGHT)
while True:
ret, frame = video.read()
cv2.waitKey(10)
left_img = frame[:, :mid]
right_img = frame[:, mid:]
cv2.imshow("left_img", left_img)
cv2.imshow("right_img", right_img)
当你看到两个窗口弹出的时候,说明双目摄像头测试成功了
来来来、复制代码
import cv2
video = cv2.VideoCapture(1 + cv2.CAP_DSHOW)
width = 2560
high = 720
mid = width // 2
video.set(cv2.CAP_PROP_FRAME_WIDTH, width)
video.set(cv2.CAP_PROP_FRAME_HEIGHT, high)
w = video.get(cv2.CAP_PROP_FRAME_WIDTH)
h = video.get(cv2.CAP_PROP_FRAME_HEIGHT)
index=1
index2=1
while True:
ret, frame = video.read()
left_img = frame[:, :mid]
right_img = frame[:, mid:]
cv2.imshow("left_img", left_img)
cv2.imshow("right_img", right_img)
k = cv2.waitKey(1) & 0xFF
if k == ord('a'):
cv2.imwrite("left"+str(index)+".jpg", left_img)
print("success index="+str(index))
index=index+1
if k == ord('s'):
cv2.imwrite("right"+str(index2)+".jpg", right_img)
print("success index2="+str(index2))
index2=index2+1
以上代码实现了
按下a键就左目拍照
按下s键就右目拍照
左右目各拍20张标定图
一次性导入20张左目的照片
这里填棋盘的宽度,我是A4纸打印的是24mm(尺子量的)
具体需要你们去亲自量一下啦
等待MATLAB计算好就行啦
标点计算完了就会告诉你有多少个是可以用的,有多少个是无效的图像
!!!!!
我的有效图像居然只有七张!!!而且误差均值居然到了1.15!!!
重做ing!!!!
重做ing!!!!
重做ing!!!!
重做ing!!!!
重做ing!!!!
后来才发现1.15真的不高,在做了N次后发现1.15居然是最低的!!!
有些网站说误差需要小于0.5才可以通过,我有时候的误差可以到6!!经常性会到2点几
最后这次我做了有一点几,就果断导出数据了
按这个按钮导出到控制台
然后就可以看到左目相机的数据
接下来要看相机的内参矩阵,径向畸变和切向畸变。
内参矩阵
cameraParams.IntrinsicMatrix
cameraParams.RadialDistortion
cameraParams.TangentialDistortion
右目相机的误差在1.3其实还行
!!!为什么我总是到不了1.0以下
以下就是这次标定的所有数据
下一章将使用双目摄像头测出的数据填入到代码中,再使用立体矫正以及立体匹配,这样就可以得到深度图,使用深度图再进行视差运算,得到视差图。测距测试!!
Unable to estimate camera parameters. Images may contain severe lensdistortion or the 3-D onentations of the cabra tion pattem are toosimilar across images. If calibration pattem onentations are toosimilar, try removing very simar images or adding additional images withhe pattem in varied orientations
无法估计摄像机参数。图像中可能存在严重的透镜畸变,或者图像中的三维结构模式过于相似。如果校准模式的组成非常相似,尝试删除非常simar图像或添加其他图像与模式在不同的方向