stereo-vision
All Data Structures Namespaces Functions Modules Pages
main.cpp
1 #include <iostream>
2 
3 // OpenCV includes
4 #include <opencv2/opencv.hpp>
5 #include <opencv2/highgui/highgui.hpp>
6 
7 // Sample includes
8 #include <time.h>
9 
10 #include "common.h"
11 
12 using namespace std;
13 
14 void free_gpu_mem();
15 cv::Mat compute_disparity(cv::Mat *left_img, cv::Mat *right_img, float *cost_time);
16 void cuda_init(SGM_PARAMS *params);
17 cv::Mat zy_remap(cv::Mat &img1, cv::Mat &img2);
18 
19 
20 string intrinsic_filename = "intrinsics.yml", extrinsic_filename = "extrinsics.yml";
21 
22 // cv::Rect roi1, roi2;
23 // cv::Mat Q;
24 // cv::Size img_size;
25 // float scale = 1.0;
26 // cv::Mat map11, map12, map21, map22;
27 
28 
29 // int main(int argc, char **argv) {
30 
31 // if(argc != 4)
32 // {
33 // std::cout<<"argc wrong\nuseage: ./a.out image_dir start_number end_number";
34 // return -1;
35 // }
36 // char *prefix = argv[1];
37 // int start_num = atoi(argv[2]);
38 // int end_num = atoi(argv[3]);
39 // char left_img_name[128] = {0};
40 // char right_img_name[128] = {0};
41 
42 // char key = ' ';
43 // double frame_start = 0, frame_end = 0;
44 // bool time_print = false;
45 // int i = start_num;
46 
47 // SGM_PARAMS params;
48 // params.preFilterCap = 63;
49 // params.BlockSize = 7;
50 // params.P1 = 8 * params.BlockSize * params.BlockSize;
51 // params.P2 = 32 * params.BlockSize * params.BlockSize;
52 // params.uniquenessRatio = 5;
53 // params.disp12MaxDiff = 0;
54 // cuda_init(&params);
55 
56 // cv::Mat resizeImg_left, resizeImg_right;
57 
58 // cv::namedWindow("Disp", 1);
59 
60 // while (key != 27) {
61 
62 // double start = cv::getTickCount();
63 // // sprintf(left_img_name, "%s/left%d.jpg", prefix, i);
64 // // sprintf(right_img_name, "%s/right%d.jpg", prefix, i);
65 // sprintf(left_img_name, "%s/lefti.png", prefix);
66 // sprintf(right_img_name, "%s/righti.png", prefix);
67 // // sprintf(left_img_name, "%s/view1.png", prefix);
68 // // sprintf(right_img_name, "%s/view5.png", prefix);
69 // resizeImg_left = cv::imread(left_img_name, cv::IMREAD_GRAYSCALE);
70 // if(resizeImg_left.empty())
71 // {
72 // std::cout<<"read "<<left_img_name<<" fail\n";
73 // return 1;
74 // }
75 // resizeImg_right = cv::imread(right_img_name, cv::IMREAD_GRAYSCALE);
76 // if(resizeImg_right.empty())
77 // {
78 // std::cout<<"read "<<right_img_name<<" fail\n";
79 // return 1;
80 // }
81 // i++;
82 
83 // // cv::imshow("left_zed", resizeImg_left);
84 // // cv::imshow("right_zed", resizeImg_right);
85 
86 // double end = cv::getTickCount();
87 // printf("Pre Cost:%lf ms.\n", (end - start)* 1000/cv::getTickFrequency());
88 
89 // cv::Mat d = zy_remap(resizeImg_left, resizeImg_right);
90 
91 // end = cv::getTickCount();
92 
93 // printf("Total Cost:%lf ms.\n", (end - start)* 1000/cv::getTickFrequency());
94 
95 // // cv::Mat d = cv::Mat::zeros(100,100, CV_8UC1);
96 
97 // cv::imshow("Disp", d * 16);
98 // key = cv::waitKey(1);
99 // }
100 
101 // //free_gpu_mem();
102 // return 0;
103 // }
104 
105 
106 cv::Mat zy_remap(cv::Mat &img1, cv::Mat &img2)
107 {
108  return compute_disparity(&img1, &img2, NULL);
109 }