python+opencv+matlab实现双目标定和测距

 

0 准备工作

  • VMware安装uabntu16.04   
  • ubantu下安装anaconda3  
  • 在anaconda新建环境:opencv
  • 在新建环境opencv下安装opencv-python库:pip install opencv-python -i https://pypi.douban.com/simpl
  • 在新建环境opencv下安装opencv库:conda install opencv
  • 在jupyter notebook中嵌入新建环境opencv
  • windows10 下安装Matlab
  • 单usb双目摄像头:本人使用的是lenaCV 3D Camera
  • 棋盘格:可以下载打印
     

1 双目相机标定 

1.1  获取标定图片并分割左右图片

python代码

import cv2

#分割双目图片
def divide_img(img): #i=0横向分割 默认i=1纵向分割
    h = img.shape[0]
    w = img.shape[1]
    L_img = img[0:h, 0:int(w/2), :]
    R_img = img[0:h, int(w/2):w, :]
    return L_img, R_img

#读取摄像头
cap=cv2.VideoCapture(0)
i=1
while True:
    ret, frame=cap.read()
    #frame = cv2.flip(frame,1) 
    cv2.imshow('frame',frame)
    if cv2.waitKey(1)==ord('s'):
        #cv.resize(frame,(640,480))
        cv2.imwrite('./cap_data/img%d.jpg'%i,frame)
        print('had written img%d.jpg'%i, frame.shape)
        L_img, R_img = divide_img(frame)
        cv2.imwrite('./cap_data/L_img/L_img%d.jpg'%i,L_img)
        cv2.imwrite('./cap_data/R_img/R_img%d.jpg'%i,R_img)
        #print('had written img%d.jpg'%i, frame.shape)
        i+=1   
    elif cv2.waitKey(5)==ord('q'):
        break
python+opencv+matlab实现双目标定和测距_第1张图片 img1.jpg

                                            

python+opencv+matlab实现双目标定和测距_第2张图片 L_img1.jpg   python+opencv+matlab实现双目标定和测距_第3张图片   R_img1.jpg 

                                                                                                                       

 

 

 


 

 

1.2 用Matlab进行标定

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(xilinx,pynq学习)