camera_configs.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # filename: camera_configs.py
  2. import cv2
  3. import numpy as np
  4. import pandas as pd
  5. from configparser import ConfigParser
  6. config = ConfigParser()
  7. config.read(r'./config.ini',encoding='utf-8')
  8. path = config['camera_name']['Serial_number'] + '__camera_parameter.xlsx'
  9. df = pd.read_excel(path)
  10. odd_even = 0
  11. x1_l, y1_l = 0, 0
  12. x2_l, y2_l = 0, 0
  13. x1_r, y1_r = 0, 0
  14. x2_r, y2_r = 0, 0
  15. threeD = [0, 0]
  16. disparity_show = [0, 0]
  17. left_camera_matrix = np.array(df.iloc[0:3, 1:4])
  18. left_distortion = np.array([df.iloc[3, 1:6]]).astype(np.float64)
  19. right_camera_matrix = np.array(df.iloc[4:7, 1:4])
  20. right_distortion = np.array([df.iloc[7, 1:6]]).astype(np.float64)
  21. R = np.array(df.iloc[8:11, 1:4])
  22. T = np.array(df.iloc[11, 1:4]).astype(np.float64)
  23. size = (1600, 1200) # 图像尺寸
  24. # 进行立体更正
  25. R1, R2, P1, P2, Q, validPixROI1, validPixROI2 = cv2.stereoRectify(left_camera_matrix, left_distortion,
  26. right_camera_matrix, right_distortion, size, R,
  27. T, alpha=-1)
  28. # 计算更正map
  29. left_map1, left_map2 = cv2.initUndistortRectifyMap(left_camera_matrix, left_distortion, R1, P1, size, cv2.CV_16SC2)
  30. right_map1, right_map2 = cv2.initUndistortRectifyMap(right_camera_matrix, right_distortion, R2, P2, size, cv2.CV_16SC2)