stereo.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include <opencv2/opencv.hpp>
  2. #include "opencv2/core/core.hpp"
  3. #include "opencv2/calib3d/calib3d.hpp"
  4. #include <opencv2/highgui/highgui.hpp>
  5. #include <opencv2/imgproc/imgproc.hpp>
  6. #include <stdio.h>
  7. #include <string.h>
  8. int main(int argc, char** argv)
  9. {
  10. cv::Mat imgL,imgR;
  11. imgL = cv::imread("images/im0.png",0);
  12. cv::resize(imgL,imgL,cv::Size(600,600));
  13. imgR = cv::imread("images/im1.png",0);
  14. cv::resize(imgR,imgR,cv::Size(600,600));
  15. int minDisparity = 0;
  16. int numDisparities = 64;
  17. int blockSize = 8;
  18. int disp12MaxDiff = 1;
  19. int uniquenessRatio = 10;
  20. int speckleWindowSize = 10;
  21. int speckleRange = 8;
  22. cv::Ptr<cv::StereoSGBM> stereo = cv::StereoSGBM::create(minDisparity,numDisparities,blockSize,disp12MaxDiff,uniquenessRatio,speckleWindowSize,speckleRange);
  23. cv::Mat disp;
  24. stereo->compute(imgL,imgR,disp);
  25. cv::normalize(disp, disp, 0, 255, cv::NORM_MINMAX, CV_8UC1);
  26. cv::imshow("Left image",imgL);
  27. cv::imshow("Right image",imgR);
  28. cv::imshow("disparity",disp);
  29. cv::waitKey(0);
  30. return 0;
  31. }