stereo.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from __future__ import print_function
  2. import numpy as np
  3. import cv2
  4. def main():
  5. imgL = cv2.imread("images/im0.png",0)
  6. imgL = cv2.resize(imgL,(600,600))
  7. imgR = cv2.imread("images/im1.png",0)
  8. imgR = cv2.resize(imgR,(600,600))
  9. # Setting parameters for StereoSGBM algorithm
  10. minDisparity = 0
  11. numDisparities = 64
  12. blockSize = 8
  13. disp12MaxDiff = 1
  14. uniquenessRatio = 10
  15. speckleWindowSize = 10
  16. speckleRange = 8
  17. # Creating an object of StereoSGBM algorithm
  18. stereo = cv2.StereoSGBM_create(minDisparity = minDisparity,
  19. numDisparities = numDisparities,
  20. blockSize = blockSize,
  21. disp12MaxDiff = disp12MaxDiff,
  22. uniquenessRatio = uniquenessRatio,
  23. speckleWindowSize = speckleWindowSize,
  24. speckleRange = speckleRange
  25. )
  26. # Calculating disparith using the StereoSGBM algorithm
  27. disp = stereo.compute(imgL, imgR).astype(np.float32)
  28. # Calculating disparith using the StereoSGBM algorithm
  29. disp = cv2.normalize(disp,0,255,cv2.NORM_MINMAX)
  30. # Displaying the disparity map
  31. cv2.imshow("disparity",disp)
  32. cv2.imshow("left image",imgL)
  33. cv2.imshow("right image",imgR)
  34. cv2.waitKey(0)
  35. if __name__ == '__main__':
  36. main()
  37. cv2.destroyAllWindows()