├── C++ └── .gitkeep ├── README.md ├── homework_PPT_Zou_2018 ├── .DS_Store ├── PPT │ ├── vlp_lecture_01.pdf │ ├── vlp_lecture_02.pdf │ ├── vlp_lecture_03.pdf │ ├── vlp_lecture_04.pdf │ ├── vlp_lecture_05.pdf │ ├── vlp_lecture_06.pdf │ ├── vlp_lecture_07.pdf │ ├── vlp_lecture_08.pdf │ ├── vlp_lecture_09.pdf │ ├── vlp_lecture_10.pdf │ ├── vlp_lecture_11.pdf │ ├── vlp_lecture_12.pdf │ ├── vlp_lecture_13.pdf │ ├── vlp_lecture_14.pdf │ └── vlp_lecture_15.pdf ├── Partial_code │ ├── HarrisDetector │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ └── test1.bmp │ └── Histogram_specialization │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ ├── test1.bmp │ │ ├── test2.bmp │ │ └── test3.bmp └── homework │ ├── .DS_Store │ ├── 作业5-数据.zip │ ├── 作业5-数据 │ ├── icp_x.txt │ ├── icp_xy.mat │ └── icp_y.txt │ ├── 作业五.docx │ ├── 作业六.docx │ ├── 作业四.docx │ └── 期末大作业.docx └── vslam_fourteen_lectures ├── .gitkeep ├── BApnp ├── CMakeLists.txt ├── GN-BA.cpp ├── p2d.txt ├── p3d.txt └── result-ba.png ├── EigenDense ├── .DS_Store ├── CMakeLists.txt └── main.cpp ├── EigenGeometry ├── .DS_Store ├── CMakeLists.txt └── main.cpp ├── computeORB ├── 1.png ├── 2.png ├── CMakeLists.txt ├── computeORB.cpp ├── feat1.png └── matches.png ├── computerRt ├── CMakeLists.txt ├── E2Rt.cpp └── result.png ├── direct_method ├── 000001.png ├── 000002.png ├── 000003.png ├── 000004.png ├── 000005.png ├── 1_c.png ├── 1_r.png ├── 2_c.png ├── 2_r.png ├── 3_c.png ├── 3_r.png ├── 4_c.png ├── 4_r.png ├── CMakeLists.txt ├── direct_method.cpp ├── disparity.png ├── left.png ├── multi_layer_result.png ├── right.png └── sigle_layer_result.png ├── disparity ├── CMakeLists.txt ├── disparity.cpp ├── disparity.png ├── left.png ├── result1.png └── right.png ├── gauessnewton ├── CMakeLists.txt ├── gaussnewton.cpp └── result.png ├── icp ├── CMakeLists.txt ├── ba_result.png ├── ba_result1.png ├── cmake_modules │ ├── FindCSparse.cmake │ └── FindG2O.cmake ├── compare.txt ├── icp.cpp ├── svd_result.png ├── svd_result1.png └── 原始图像.png ├── optical_flow ├── 1.png ├── 2.png ├── CMakeLists.txt ├── multi_f.png ├── multi_i.png ├── opencv_op.png ├── optical_flow.cpp ├── single_f.png └── single_i.png ├── trajectError ├── .DS_Store ├── CMakeLists.txt ├── estimated.txt ├── groundtruth.txt └── tracjecError.cpp ├── trajectory ├── .DS_Store ├── CMakeLists.txt ├── draw_trajectory.cpp └── trajectory.txt └── undistort ├── CMakeLists.txt ├── build ├── CMakeCache.txt ├── CMakeFiles │ ├── 3.12.3 │ │ ├── CMakeCCompiler.cmake │ │ ├── CMakeCXXCompiler.cmake │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ ├── CMakeSystem.cmake │ │ ├── CompilerIdC │ │ │ ├── CMakeCCompilerId.c │ │ │ └── a.out │ │ └── CompilerIdCXX │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ └── a.out │ ├── CMakeDirectoryInformation.cmake │ ├── CMakeOutput.log │ ├── Makefile.cmake │ ├── Makefile2 │ ├── TargetDirectories.txt │ ├── cmake.check_cache │ ├── feature_tests.bin │ ├── feature_tests.c │ ├── feature_tests.cxx │ ├── progress.marks │ └── undistort.dir │ │ ├── CXX.includecache │ │ ├── DependInfo.cmake │ │ ├── build.make │ │ ├── cmake_clean.cmake │ │ ├── depend.internal │ │ ├── depend.make │ │ ├── flags.make │ │ ├── link.txt │ │ ├── progress.make │ │ └── undistort_image.cpp.o ├── Makefile ├── cmake_install.cmake └── undistort ├── result.png ├── test.png └── undistort_image.cpp /C++/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/C++/.gitkeep -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Visual-Localization-Percessing 2 | 该仓库主要包含了三大部分: 3 | 4 | - 《视觉SLAM十四讲》相关习题的解答和代码; 5 | - 邹丹平老师视觉定位的课件; 6 | - C++相关的操作; 7 | 8 | ### 关于《视觉SLAM十四讲》部分: 9 | 以高翔上课的视频为主线,完成相应的课后题为主要任务。这一部分可以分为文档部分和代码部分。文档部分可以参考我的个人主页https://www.xlmaverick.me 10 | 本仓库中主要是相应的习题配套代码。 11 | 代码部分按章节存放,包含相应的cpp文件和CmakeList文件。需要安装的依赖包没有具体的说明,可以参考CmakeList文件自行安装。 12 | 13 | ### 邹丹平老师视觉定位的课件部分: 14 | 这是邹老师相应的教学课件,偏重于SFM部分,相当于《视觉SLAM十四讲》中的前十讲,没有包含回环检测和建图的部分,在课程的结束部分对SLAM进行了现状和未来的探讨。同样,也有相应的习题作业,但是由于和《十四讲》有重复的地方,上课过程中也只完成了相应的代码,尚未整理和文档编写,所以暂时未完整添加进来。 15 | 16 | ### C++相关的操作 17 | 这一部分主要包含两个部分,数据结构算法部分和C++知识部分,这一个主要是平时整理代码和回顾总结。 18 | -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/.DS_Store -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_01.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_02.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_03.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_03.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_04.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_04.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_05.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_05.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_06.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_06.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_07.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_07.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_08.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_08.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_09.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_10.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_11.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_12.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_13.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_14.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/PPT/vlp_lecture_15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/PPT/vlp_lecture_15.pdf -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/HarrisDetector/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/Partial_code/HarrisDetector/CMakeLists.txt -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/HarrisDetector/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "opencv2/highgui/highgui.hpp" 4 | #include "opencv2/imgproc/imgproc.hpp" 5 | 6 | using namespace cv; 7 | using namespace std; 8 | 9 | namespace feat 10 | { 11 | const double EPS = 2.2204e-16; 12 | struct SBlob 13 | { 14 | Point position; 15 | double value; 16 | double sigma; 17 | }; 18 | static bool compareBlob(const SBlob& lhs, const SBlob& rhs); 19 | Mat getHOGKernel(Size& ksize, double sigma); 20 | void extBlobFeat(Mat& imgSrc, vector& blobs); 21 | 22 | 23 | // edge detection 24 | enum sobelDirection{SOBEL_HORZ, SOBEL_VERT, SOBEL_BOTH}; 25 | double getSobelEdge(const Mat& imgSrc, Mat& imgDst, double thresh = -1, int direction = SOBEL_BOTH); 26 | static double getCannyThresh(const Mat& inputArray, double percentage); 27 | void getCannyEdge(const Mat& imgSrc, Mat& imgDst, double lowThresh = -1, double highThresh = -1, double sigma = 1); 28 | 29 | 30 | void detectHarrisCorners(const Mat& imgSrc, Mat& imgDst, double alpha); 31 | void drawCornerOnImage(Mat& image, const Mat&binary); 32 | void detectHarrisLaplace(const Mat& imgSrc, Mat& imgDst); 33 | } 34 | 35 | void feat::detectHarrisCorners(const Mat& imgSrc, Mat& imgDst, double alpha) 36 | { 37 | Mat gray; 38 | if (imgSrc.channels() == 3) 39 | { 40 | cvtColor(imgSrc, gray, CV_BGR2GRAY); 41 | } 42 | else 43 | { 44 | gray = imgSrc.clone(); 45 | } 46 | gray.convertTo(gray, CV_64F); 47 | 48 | Mat xKernel = (Mat_(1,3) << -1, 0, 1); 49 | Mat yKernel = xKernel.t(); 50 | 51 | Mat Ix,Iy; 52 | filter2D(gray, Ix, CV_64F, xKernel); 53 | filter2D(gray, Iy, CV_64F, yKernel); 54 | 55 | Mat Ix2,Iy2,Ixy; 56 | Ix2 = Ix.mul(Ix); 57 | Iy2 = Iy.mul(Iy); 58 | Ixy = Ix.mul(Iy); 59 | 60 | Mat gaussKernel = getGaussianKernel(7, 1); 61 | filter2D(Ix2, Ix2, CV_64F, gaussKernel); 62 | filter2D(Iy2, Iy2, CV_64F, gaussKernel); 63 | filter2D(Ixy, Ixy, CV_64F, gaussKernel); 64 | 65 | 66 | Mat cornerStrength(gray.size(), gray.type()); 67 | for (int i = 0; i < gray.rows; i++) 68 | { 69 | for (int j = 0; j < gray.cols; j++) 70 | { 71 | double det_m = Ix2.at(i,j) * Iy2.at(i,j) - Ixy.at(i,j) * Ixy.at(i,j); 72 | double trace_m = Ix2.at(i,j) + Iy2.at(i,j); 73 | cornerStrength.at(i,j) = det_m - alpha * trace_m *trace_m; 74 | } 75 | } 76 | // threshold 77 | double maxStrength; 78 | minMaxLoc(cornerStrength, NULL, &maxStrength, NULL, NULL); 79 | Mat dilated; 80 | Mat localMax; 81 | dilate(cornerStrength, dilated, Mat()); 82 | compare(cornerStrength, dilated, localMax, CMP_EQ); 83 | 84 | 85 | Mat cornerMap; 86 | double qualityLevel = 0.01; 87 | double thresh = qualityLevel * maxStrength; 88 | cornerMap = cornerStrength > thresh; 89 | bitwise_and(cornerMap, localMax, cornerMap); 90 | 91 | imgDst = cornerMap.clone(); 92 | 93 | } 94 | 95 | void feat::drawCornerOnImage(Mat& image, const Mat& binary) 96 | { 97 | Mat_::const_iterator it = binary.begin(); 98 | Mat_::const_iterator itd = binary.end(); 99 | for (int i = 0; it != itd; it++, i++) 100 | { 101 | if (*it) 102 | circle(image, Point(i%image.cols, i / image.cols), 3, Scalar(0, 255, 0), 1); 103 | } 104 | } 105 | 106 | int main(int argc, char** argv ) 107 | { 108 | Mat image; 109 | Mat cornerMap; 110 | image = imread("../test1.bmp",IMREAD_GRAYSCALE ); 111 | if ( !image.data ) 112 | { 113 | printf("No image data \n"); 114 | printf("Please check the path and name of image_origianl \n"); 115 | return -1; 116 | } 117 | 118 | feat::detectHarrisCorners(image, cornerMap,0.001); 119 | feat::drawCornerOnImage(image, cornerMap); 120 | 121 | namedWindow("Display Image", WINDOW_AUTOSIZE ); 122 | imshow("Display Image", cornerMap); 123 | waitKey(0); 124 | 125 | return 0; 126 | } 127 | -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/HarrisDetector/test1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/Partial_code/HarrisDetector/test1.bmp -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/Histogram_specialization/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/Partial_code/Histogram_specialization/CMakeLists.txt -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/Histogram_specialization/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace cv; 4 | 5 | cv::Mat histogram_specilalization(cv::Mat srcImage, cv::Mat dstImage) 6 | { 7 | Mat output = srcImage.clone(); 8 | 9 | int grayArray[256]; 10 | float srcpdf[256] = {0.0f}; 11 | float dstpdf[256] = {0.0f}; 12 | int gray_tag = 0; 13 | float gray_sum = 0.0f; 14 | 15 | memset(grayArray,0,sizeof(grayArray)); 16 | for(size_t nrow = 0; nrow < srcImage.rows; nrow++) 17 | { 18 | for(size_t ncol = 0;ncol < srcImage.cols; ncol++) 19 | { 20 | gray_tag = srcImage.at(nrow,ncol); 21 | grayArray[gray_tag]++; 22 | } 23 | } 24 | gray_sum = 0.0f; 25 | for(int i = 0;i < 256;i++) 26 | { 27 | gray_sum = gray_sum+grayArray[i]; 28 | srcpdf[i] = gray_sum / (srcImage.rows*srcImage.cols); 29 | // std::cout<(nrow, ncol); 38 | grayArray[gray_tag]++; 39 | } 40 | } 41 | gray_sum = 0.0f; 42 | for(int i=0;i < 256;i++) 43 | { 44 | gray_sum = gray_sum + grayArray[i]; 45 | dstpdf[i] = gray_sum / (dstImage.rows * dstImage.cols); 46 | //std::cout< abs(srcpdf[i]-dstpdf[j])) 57 | { 58 | minMap = abs(srcpdf[i]-dstpdf[j]); 59 | minTag = j; 60 | } 61 | } 62 | histogram_history[i] = minTag; 63 | } 64 | 65 | for(size_t nrow = 0;nrow(nrow,ncol); 70 | output.at(nrow,ncol) = histogram_history[temp]; 71 | } 72 | } 73 | 74 | return output; 75 | } 76 | 77 | cv::Mat histogram_equalization(cv::Mat srcImage) 78 | { 79 | 80 | Mat output = srcImage.clone(); 81 | 82 | int grayArray[256]; 83 | float srcpdf[256] = {0.0f}; 84 | 85 | int gray_tag = 0; 86 | float gray_sum = 0.0f; 87 | 88 | memset(grayArray,0,sizeof(grayArray)); 89 | for(size_t nrow = 0; nrow < srcImage.rows; nrow++) 90 | { 91 | for(size_t ncol = 0;ncol < srcImage.cols; ncol++) 92 | { 93 | gray_tag = srcImage.at(nrow,ncol); 94 | grayArray[gray_tag]++; 95 | } 96 | } 97 | gray_sum = 0.0f; 98 | for(int i = 0;i < 256;i++) 99 | { 100 | gray_sum = gray_sum+grayArray[i]; 101 | srcpdf[i] = gray_sum / (srcImage.rows*srcImage.cols); 102 | // std::cout<(nrow,ncol); 116 | output.at(nrow,ncol) = histogram_history[temp]; 117 | } 118 | } 119 | 120 | return output; 121 | 122 | } 123 | 124 | void histogram_show(cv::Mat srcImage) 125 | { 126 | 127 | int channels = 0; 128 | 129 | MatND dstHist; 130 | 131 | int histSize[] = { 256 }; 132 | 133 | 134 | float midRanges[] = { 0, 256 }; 135 | const float *ranges[] = { midRanges }; 136 | 137 | calcHist(&srcImage, 1, &channels, Mat(), dstHist, 1, histSize, ranges, true, false); 138 | 139 | Mat drawImage = Mat::zeros(Size(256, 256), CV_8UC3); 140 | double g_dHistMaxValue; 141 | minMaxLoc(dstHist, 0, &g_dHistMaxValue, 0, 0); 142 | for (int i = 0; i < 256; i++) 143 | { 144 | int value = cvRound(dstHist.at(i) * 256 * 0.9 / g_dHistMaxValue); 145 | 146 | line(drawImage, Point(i, drawImage.rows - 1), Point(i, drawImage.rows - 1 - value), Scalar(255, 255, 255)); 147 | } 148 | 149 | imshow("【图片直方图】", drawImage); 150 | } 151 | 152 | 153 | int main(int argc, char** argv ) 154 | { 155 | Mat image_origianl, image_target, image_adjust; 156 | image_origianl = imread("../test2.bmp",IMREAD_GRAYSCALE ); 157 | if ( !image_origianl.data ) 158 | { 159 | printf("No image data \n"); 160 | printf("Please check the path and name of image_origianl \n"); 161 | return -1; 162 | } 163 | image_target = imread("../test3.bmp",IMREAD_GRAYSCALE ); 164 | if ( !image_target.data ) 165 | { 166 | printf("No image data \n"); 167 | printf("Please check the path and name of image_target \n"); 168 | return -1; 169 | } 170 | 171 | histogram_show(image_origianl); 172 | image_adjust = histogram_equalization(image_origianl); 173 | histogram_show(image_adjust); 174 | 175 | namedWindow("Display Image", WINDOW_AUTOSIZE ); 176 | imshow("Display Image", image_adjust); 177 | waitKey(0); 178 | 179 | return 0; 180 | } 181 | -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/Histogram_specialization/test1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/Partial_code/Histogram_specialization/test1.bmp -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/Histogram_specialization/test2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/Partial_code/Histogram_specialization/test2.bmp -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/Partial_code/Histogram_specialization/test3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/Partial_code/Histogram_specialization/test3.bmp -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/.DS_Store -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/作业5-数据.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/作业5-数据.zip -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/作业5-数据/icp_x.txt: -------------------------------------------------------------------------------- 1 | 2.2,2.2,3,-0.6,0.6,0.2,-2.2,1.4,-1.8,-0.6,1.8,-2.2,1,-2.6,0.6,0.2,1.4,1.8,-2.6,0.6,-2.2,-2.2,-1,1.8,-1,-1,2.2,-0.2,-0.2,1.4,-0.6,3,2.2,-1.4,-3,-1.8,-1.8,3,2.6,-1.8,-0.6,-0.6,0.6,3,0.6,2.2,1.4,3,1,2.2,-2.6,1.4,0.6,-3,-0.2,1.8,2.2,1.8,0.6,-1.4,-1,-0.6,1.8,-1.4,0.2,-3,-3,-3,2.6,-1.8,0.6,-0.2,2.6,0.2,2.2,-0.2,2.2,0.6,1,2.2,-0.6,-1,1.4,-0.2,-0.2,1.4,0.6,2.6,-2.2,-1.8,-1,-2.2,1,0.2,-2.6,-3,-0.2,2.6,-2.2,1.8,1.4,1.4,-2.2,-3,-2.2,-0.2,-0.2,-2.2,1.4,-1,-1.4,-1,-1.8,-2.2,2.6,-1,1,-0.6,1,2.6,2.2,-0.2,-1.4,3,3,2.2,0.2,1.8,0.2,-1.4,0.6,0.2,3,2.6,-1.4,-0.6,0.6,1.4,-1.4,0.2,-2.6,-2.6,2.2,1.4,-1.8,0.2,-2.6,0.6,2.2,0.6,2.6,-1.4,1.8,-1.8,2.6,-0.2,2.6,-3,-1.8,1,-2.6,1,-2.2,3,3,-0.6,-1,-1.4,1.8,-1.8,3,0.2,-1.4,-1,-3,-1.4,-0.6,1,1.8,2.6,-3,-2.2,2.6,3,1.8,2.6,2.2,-1.4,3,-1.8,-0.2,1.4,3,1.4,-3,1.8,1.8,0.6,-3,-3,-0.6,-2.2,1,1,1.8,-0.2,-1.4,1,-2.6,0.2,3,1.8,-0.6,-2.6,1,-0.6,1.4,-1,-2.6,-0.6,-2.6,0.6,1,-1.8,1.4,2.6,1,-0.6,3,2.6,0.2,-2.6,-1.4,-1,2.2,0.2,-2.2,-1.4,1,-2.6,0.2,-1,-0.2,-1.8,-2.2,-3,-3,0.2,-2.6,-3,-0.2,-1,-1.8,-1,-2.6,-1.8 2 | -0.2,-0.6,1,-1.8,-1.4,2.6,-3,0.2,-0.2,0.2,-1.4,2.2,3,-1,-2.2,-3,-3,3,-1.4,1.4,-0.6,1.4,-1.4,1.8,1.8,1.4,-3,0.2,-1.4,0.6,-0.2,-1.8,2.2,1,1.8,3,-1,-1.4,2.6,1,-2.6,-0.6,3,-0.2,-1.8,-1.8,1.4,3,0.2,-1,2.2,-2.6,-2.6,-1,1,-1,-2.2,0.6,0.2,-1.4,-1.8,0.6,2.6,3,0.2,0.6,0.2,1.4,-1.8,1.4,1.8,0.6,-2.2,-1.8,0.6,1.8,-2.6,1,2.6,1.8,1.4,-3,1,1.4,-1.8,-0.2,2.6,1.8,-0.2,-2.6,0.6,1.8,-1.8,1.8,1,-1.8,3,-2.6,2.6,-1.8,1.8,2.6,-1.4,-2.2,-2.6,-2.2,2.2,1,-1,-1,2.2,-0.6,-0.6,3,-0.2,-2.2,1.4,-3,-1,-3,0.2,-3,-0.6,2.2,0.6,1,-1.4,-0.6,1,-2.2,-3,-2.2,-2.6,2.2,-2.6,2.6,-0.6,3,0.2,0.6,-1.8,1.8,-1.4,-1.8,2.6,3,-3,-0.2,3,-1,1.4,-0.2,1,-3,0.6,-0.2,1,-1.4,2.2,-3,-2.6,-2.6,-1.8,-3,0.2,2.2,3,-3,-3,0.6,1.4,-0.6,-1.8,2.6,2.2,1.4,-2.2,-1.4,0.2,-1.4,-0.2,-1,0.2,1.8,2.2,3,2.6,2.6,-1,-2.2,-1,-0.6,-2.2,2.2,-0.6,1.4,-0.2,0.6,1,2.6,-1.4,-2.2,1,2.2,-2.2,-0.6,-1,0.6,-0.6,1.4,-0.6,-2.6,1,1.4,1.8,1.8,-1.4,-0.2,-0.2,-1,3,2.2,-0.2,-1.4,-2.2,-1,-2.2,3,2.6,-0.6,-2.6,0.6,1.8,-2.6,1.4,2.2,0.6,0.6,-0.6,0.2,-0.2,2.2,2.6,1.8,0.2,-3,3,-1,-2.2,-2.6,-2.6,0.2,0.2,1,2.6,-1.8 3 | 0.79348,0.58794,0.012467,-2.375,-4.9093,1.3229,0.0019684,3.3501,-1.7423,0.35522,0.069231,0.025223,0.11068,-0.04141,-2.7586,-0.25439,-0.040575,0.012009,-0.0018551,5.3772,-0.41553,-0.064152,0.51338,0.37378,2.5958,2.3394,-0.001646,1.1129,-3.7232,2.5024,1.9068,0.0011436,0.038605,-0.81854,-0.00059947,0.011459,-0.075985,0.0049162,0.0018259,-0.6921,-0.54782,3.522,0.2093,0.032083,-4.9612,-0.0088922,1.5561,4.103e-05,2.8229,0.302,0.0029584,-0.18476,-0.93429,-0.0087619,3.659,0.71945,-0.017746,1.5221,0.70024,0.47815,-0.52297,0.12725,0.056426,0.041778,0.068742,-0.026465,-0.035765,-0.0044956,0.0038592,-0.027028,5.1884,0.93398,-0.0010512,-6.1525,0.57005,7.1169,-0.0073143,2.8097,0.51009,0.090139,5.1679,-0.029871,1.7959,7.3103,-4.9164,3.3689,0.96167,0.016326,-0.72332,0.014579,-1.745,0.023906,-2.6074,7.0957,-0.077126,0.00069517,0.28814,-0.0006792,0.0098639,-0.16625,1.1783,0.19803,0.02227,0.0005947,0.0068599,-2.9308,3.9164,-0.29245,0.82585,1.8559,0.5444,1.2764,-0.85409,0.0022619,0.19466,-0.47909,3.2006,-0.1112,-0.27292,-0.00016017,0.78361,-0.21209,-0.62191,0.00076056,0.022912,0.32664,-5.7611,1.5379,3.4262,-0.026998,-0.20301,-3.4812,-1.7725e-05,0.0062875,-0.010198,0.95983,0.35618,0.04267,-3.0304,0.39424,0.0064343,-0.00015623,0.082899,-0.87085,0.051255,0.28808,0.00045028,0.79319,0.0024708,-1.9948,0.03666,-2.3246,0.93379,0.0048403,0.13926,2.3122,0.077164,-0.0013363,0.14129,-0.10996,0.0016285,-0.50328,0.034863,-5.8642e-06,0.031654,2.8357,0.10992,0.0018761,-0.010103,-1.5253,0.0055288,0.78112,0.094003,0.5029,0.00019722,0.54588,-1.5811,-2.3733,2.0768,0.026655,-0.034045,-0.11217,0.19208,0.0021898,0.17654,0.00037204,0.011826,0.18966,0.013012,0.040314,0.66451,2.4019,0.00010559,0.60144,-0.022009,0.59878,2.0984,0.85369,-0.013669,0.00012514,-0.85382,0.018323,2.4338,1.5223,-0.12483,3.1076,0.53453,2.2486,-0.11814,7.23,0.023925,-0.045644,2.3139,-0.022556,2.8374,5.1278,-0.52075,-0.82127,-0.19096,2.4407,0.00032006,2.8481,2.8206,0.16162,-0.53054,0.077374,-1.4759,0.20911,0.00020775,0.1449,-1.1812,-0.15181,0.8963,-0.16922,0.1737,3.9122,-0.59516,-2.3551,1.8494,-0.20404,0.59847,1.4734,1.3235,0.19937,-0.79381,6.6713e-05,3.2235e-05,-1.832,0.0041875,0.00024311,-1.0023,-2.1008,-2.0095,0.2289,0.0013377,0.10507 4 | -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/作业5-数据/icp_xy.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/作业5-数据/icp_xy.mat -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/作业五.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/作业五.docx -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/作业六.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/作业六.docx -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/作业四.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/作业四.docx -------------------------------------------------------------------------------- /homework_PPT_Zou_2018/homework/期末大作业.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/homework_PPT_Zou_2018/homework/期末大作业.docx -------------------------------------------------------------------------------- /vslam_fourteen_lectures/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/.gitkeep -------------------------------------------------------------------------------- /vslam_fourteen_lectures/BApnp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 2 | 3 | SET(BUILD_TYPE Release) 4 | 5 | PROJECT(pngBA) 6 | 7 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3") 8 | 9 | set(Sophus_DIR /home/yxl/workspace/gaoxiangSlambook/slambook/3rdparty/Sophus/build/) 10 | FIND_PACKAGE(Sophus REQUIRED) 11 | 12 | INCLUDE_DIRECTORIES(${Sophus_INCLUDE_DIRS} 13 | "/usr/include/eigen3") 14 | 15 | MESSAGE(STATUS "Sophus INCLUD: ${Sophus_INCLUDE_DIRS} \n ${Sophus_LIBRARIES}") 16 | 17 | 18 | ADD_EXECUTABLE(${PROJECT_NAME} GN-BA.cpp) 19 | 20 | TARGET_LINK_LIBRARIES(${PROJECT_NAME} 21 | ${Sophus_LIBRARIES}) -------------------------------------------------------------------------------- /vslam_fourteen_lectures/BApnp/GN-BA.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace Eigen; 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #include "sophus/se3.h" 12 | 13 | using namespace std; 14 | 15 | typedef vector> VecVector3d; 16 | typedef vector> VecVector2d; 17 | typedef Matrix Vector6d; 18 | 19 | string p3d_file = "../p3d.txt"; 20 | string p2d_file = "../p2d.txt"; 21 | 22 | int main(int argc, char **argv) { 23 | 24 | VecVector2d p2d; 25 | VecVector3d p3d; 26 | Matrix3d K; 27 | double fx = 520.9, fy = 521.0, cx = 325.1, cy = 249.7; 28 | K << fx, 0, cx, 0, fy, cy, 0, 0, 1; 29 | 30 | ifstream p3dfile; 31 | p3dfile.open(p3d_file); 32 | if(!p3dfile) 33 | { 34 | cout<<"open p3d.txt error!"<>p3dtemp[0]>>p3dtemp[1]>>p3dtemp[2]; 42 | p3d.push_back(p3dtemp); 43 | 44 | } 45 | 46 | ifstream p2dfile; 47 | p2dfile.open(p2d_file); 48 | if(!p2dfile) 49 | { 50 | cout<<"open p2d.txt error!"<>p2dtemp[0]>>p2dtemp[1]; 58 | p2d.push_back(p2dtemp); 59 | 60 | } 61 | 62 | assert(p3d.size() == p2d.size()); 63 | 64 | int iterations = 100; 65 | double cost = 0, lastCost = 0; 66 | int nPoints = p3d.size(); 67 | cout << "points: " << nPoints << endl; 68 | 69 | Sophus::SE3 T_esti(Matrix3d::Identity(),Vector3d::Zero()); // estimated pose 70 | 71 | for (int iter = 0; iter < iterations; iter++) 72 | { 73 | Matrix H = Matrix::Zero(); 74 | Vector6d b = Vector6d::Zero(); 75 | Vector2d e; 76 | cost = 0; 77 | for (int i = 0; i < nPoints; i++) 78 | { 79 | Vector3d pc = T_esti*p3d[i]; 80 | Vector3d e_temp = Vector3d(p2d[i][0],p2d[i][1],1) - K*pc/pc[2]; 81 | e[0] = e_temp[0]; 82 | e[1] = e_temp[1]; 83 | cost += 0.5*e.transpose()*e; 84 | double x = pc[0], y = pc[1], z = pc[2]; 85 | Matrix J; 86 | J(0,0) = -fx/z; 87 | J(0,2) = fx*x/(z*z); 88 | J(0,3) = fx*x*y/(z*z); 89 | J(0,4) = -fx - fx*(x*x)/(z*z); 90 | J(0,5) = fx*y/z; 91 | J(1,1) = -fy/z; 92 | J(1,2) = fy*y/(z*z); 93 | J(1,3) = fy+fy*(y*y)/(z*z); 94 | J(1,4) = -fy*x*y/(z*z); 95 | J(1,5) = -fy*x/z; 96 | 97 | H +=J.transpose()*J; 98 | b +=-J.transpose()*e; 99 | } 100 | Vector6d dx; 101 | dx = H.ldlt().solve(b); 102 | 103 | if (isnan(dx[0])) 104 | { 105 | cout << "result is nan!" << endl; 106 | break; 107 | } 108 | 109 | if (iter > 0 && cost >= lastCost) 110 | { 111 | // cost increase, update is not good 112 | cout << "cost: " << cost << ", last cost: " << lastCost << endl; 113 | break; 114 | } 115 | 116 | T_esti = Sophus::SE3::exp(dx)*T_esti; 117 | 118 | lastCost = cost; 119 | 120 | cout << "iteration " << iter << " cost=" << cout.precision(12) << cost << endl; 121 | } 122 | 123 | cout << "estimated pose: \n" << T_esti.matrix() << endl; 124 | return 0; 125 | } 126 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/BApnp/p2d.txt: -------------------------------------------------------------------------------- 1 | 323 109 2 | 231 219 3 | 65 308 4 | 185 292 5 | 61 287 6 | 414 188 7 | 37 264 8 | 510 266 9 | 528 272 10 | 279 236 11 | 135 182 12 | 350 232 13 | 500 263 14 | 278.4 236.4 15 | 422 188 16 | 414 188 17 | 62.4 289.2 18 | 231.6 219.6 19 | 50.4 273.6 20 | 528 272.4 21 | 337.2 114 22 | 324 111.6 23 | 502.8 262.8 24 | 350.4 231.6 25 | 185 292 26 | 499.2 262.8 27 | 231.552 219.456 28 | 349.92 230.4 29 | 478.08 282.24 30 | 420.48 187.2 31 | 413.28 187.2 32 | 501.12 267.84 33 | 277.92 236.16 34 | 184.32 290.88 35 | 514.944 271.296 36 | 349.056 229.824 37 | 231.552 219.456 38 | 501.12 269.568 39 | 321.408 105.408 40 | 419.904 188.352 41 | 413.28 187.2 42 | 324.864 110.592 43 | 205.632 267.84 44 | 55.296 273.024 45 | 502.848 262.656 46 | 46.08 273.6 47 | 184.32 290.88 48 | 136.858 236.39 49 | 418.867 186.624 50 | 350.438 230.17 51 | 337.997 111.974 52 | 232.243 217.728 53 | 184.896 290.304 54 | 151.373 240.538 55 | 136.858 236.39 56 | 232.243 217.728 57 | 350.438 230.17 58 | 144.323 233.902 59 | 281.18 236.39 60 | 186.624 290.304 61 | 349.36 367.276 62 | 343.388 364.29 63 | 346.374 226.935 64 | 232.907 217.977 65 | 217.977 194.089 66 | 280.683 235.893 67 | 354.735 365.485 68 | 343.388 364.29 69 | 232.907 214.991 70 | 347.569 225.74 71 | 283.071 236.49 72 | 150.494 243.656 73 | 347.569 336.819 74 | 272.322 250.823 75 | 186.325 290.238 76 | 333.236 240.073 -------------------------------------------------------------------------------- /vslam_fourteen_lectures/BApnp/p3d.txt: -------------------------------------------------------------------------------- 1 | -0.0374123 -0.830816 2.7448 2 | -0.243698 -0.117719 1.5848 3 | -0.627753 0.160186 1.3396 4 | -0.323443 0.104873 1.4266 5 | -0.627221 0.101454 1.3116 6 | 0.402045 -0.341821 2.2068 7 | -0.687785 0.0430873 1.2976 8 | 0.627166 -0.0166317 1.5202 9 | 0.65817 -0.00198633 1.4784 10 | -0.0897164 -0.073607 1.5526 11 | -0.522843 -0.214436 1.4956 12 | 0.139792 -0.0954137 1.5202 13 | 0.594266 -0.0256024 1.5332 14 | -0.0891202 -0.0718189 1.5526 15 | 0.427399 -0.333001 2.1552 16 | 0.399677 -0.344018 2.1938 17 | -0.627209 0.10885 1.3158 18 | -0.244307 -0.120761 1.5848 19 | -0.637861 0.0641397 1.2706 20 | 0.661009 -0.000283745 1.4784 21 | 0.032143 -0.816064 2.7448 22 | -0.0374123 -0.822386 2.7448 23 | 0.601751 -0.0249094 1.5268 24 | 0.136873 -0.0948301 1.5202 25 | -0.329006 0.106137 1.4438 26 | 0.593677 -0.0250138 1.5332 27 | -0.24332 -0.123909 1.5784 28 | 0.136061 -0.0987584 1.5268 29 | 0.515821 0.0343076 1.4438 30 | 0.42442 -0.335979 2.1552 31 | 0.401698 -0.341997 2.1938 32 | 0.590593 -0.00582347 1.502 33 | -0.0891202 -0.0746797 1.5526 34 | -0.331572 0.106534 1.4492 35 | 0.624455 -0.00247196 1.4838 36 | 0.136061 -0.0987584 1.5268 37 | -0.242554 -0.118279 1.5848 38 | 0.587601 -0.00248262 1.4902 39 | -0.0467705 -0.851215 2.7448 40 | 0.423345 -0.33438 2.168 41 | 0.403968 -0.3497 2.2196 42 | -0.0283474 -0.81778 2.7244 43 | -0.313646 0.0344556 1.5988 44 | -0.637121 0.0619232 1.2878 45 | 0.607097 -0.0227993 1.5268 46 | -0.649687 0.0695246 1.2706 47 | -0.336318 0.104556 1.4664 48 | -0.611718 -0.0528933 1.7914 49 | 0.416153 -0.340132 2.168 50 | 0.135048 -0.0997712 1.5268 51 | 0.0351785 -0.823904 2.7448 52 | -0.238348 -0.122484 1.5848 53 | -0.327565 0.101407 1.4492 54 | -0.474742 -0.0386718 1.5138 55 | -0.616088 -0.05458 1.8 56 | -0.23961 -0.123745 1.5848 57 | 0.133832 -0.104632 1.5268 58 | -0.593113 -0.0721167 1.8086 59 | -0.0864075 -0.0767394 1.5526 60 | -0.331102 0.101785 1.4546 61 | 0.147499 0.242462 1.163 62 | 0.129166 0.232126 1.1782 63 | 0.132374 -0.101716 1.5268 64 | -0.235068 -0.123745 1.5848 65 | -0.397808 -0.253889 2.0486 66 | -0.0793163 -0.0681207 1.559 67 | 0.16172 0.233819 1.1598 68 | 0.139069 0.235996 1.1706 69 | -0.236885 -0.127379 1.5848 70 | 0.128316 -0.111731 1.5202 71 | -0.0825507 -0.0714003 1.5526 72 | -0.476188 -0.0383825 1.5138 73 | 0.144134 0.188769 1.2878 74 | -0.109385 -0.0301998 1.6344 75 | -0.326273 0.102792 1.4492 76 | 0.0766801 -0.0599636 1.5332 -------------------------------------------------------------------------------- /vslam_fourteen_lectures/BApnp/result-ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/BApnp/result-ba.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/EigenDense/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/EigenDense/.DS_Store -------------------------------------------------------------------------------- /vslam_fourteen_lectures/EigenDense/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project(homework_1th) 3 | 4 | set(CMAKE_BUILD_TYPE "Release") 5 | set(CMAKE_CXX_FLAGS "-std=c++11") 6 | 7 | include_directories("/usr/include/eigen3") 8 | add_executable(eigenMatrix main.cpp) -------------------------------------------------------------------------------- /vslam_fourteen_lectures/EigenDense/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace std; 7 | 8 | #define SIZE 100 9 | 10 | int main(int argc, char** argv) 11 | { 12 | /* Eigen最大的固定数组为50,当超过50时,如果没有使用动态初始化的方式,可以运行,但是时间效率非常的慢*/ 13 | // Eigen::Matrix matrixA; 14 | // Eigen::Matrix matrixb; 15 | 16 | //两种动态动态初始化的方式。 17 | // Eigen::MatrixXd matrixA; 18 | // Eigen::MatrixXd matrixb; 19 | 20 | Eigen::Matrix matrixA; 21 | Eigen::Matrix matrixb; 22 | 23 | matrixA = Eigen::MatrixXd::Random(SIZE,SIZE); 24 | matrixb = Eigen::MatrixXd::Random(SIZE,1); 25 | 26 | /*将系数矩阵变换为正定对称矩阵,如果没有这一步,Cholesky分解与前两个结果不一致 */ 27 | matrixA = matrixA.transpose()*matrixA; 28 | 29 | Eigen::Matrix x; 30 | clock_t time_sst = clock(); 31 | x = matrixA.inverse()*matrixb; 32 | cout< 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | int main(int argc, char** argv) 8 | { 9 | 10 | /*四元数定义的顺序和打印的顺序不一致,需要注意*/ 11 | Eigen::Quaterniond q1(0.7,0.3,0.2,0.2); 12 | cout<<"quaterniond q1 "< 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | using namespace Eigen; 9 | 10 | int main(int argc, char **argv) { 11 | 12 | // 给定Essential矩阵 13 | Matrix3d E; 14 | E << -0.0203618550523477, -0.4007110038118445, -0.03324074249824097, 15 | 0.3939270778216369, -0.03506401846698079, 0.5857110303721015, 16 | -0.006788487241438284, -0.5815434272915686, -0.01438258684486258; 17 | 18 | // 待计算的R,t 19 | Matrix3d R; 20 | Vector3d t; 21 | 22 | JacobiSVD svd(E,ComputeThinU | ComputeThinV); 23 | Matrix3d U = svd.matrixU(); 24 | Matrix3d V = svd.matrixV(); 25 | Matrix3d Sigma = U.inverse()*E*V.transpose().inverse(); 26 | // cout<<"U:\n"< tao = {Sigma(0,0),Sigma(1,1),Sigma(2,2)}; 28 | sort(tao.begin(), tao.end()); 29 | Matrix3d SigmaFix = Matrix3d::Zero(); 30 | double tao_mead = (tao[1]+tao[2])*0.5; 31 | SigmaFix(0,0) = tao_mead; 32 | SigmaFix(1,1) = tao_mead; 33 | cout<<"Sigma after fix: \n"< 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | using namespace std; 10 | 11 | typedef vector> VecVector2d; 12 | 13 | // Camera intrinsics 14 | // 内参 15 | double fx = 718.856, fy = 718.856, cx = 607.1928, cy = 185.2157; 16 | // 基线 17 | double baseline = 0.573; 18 | // paths 19 | string left_file = "../left.png"; 20 | string disparity_file = "../disparity.png"; 21 | boost::format fmt_others("../%06d.png"); // other files 22 | 23 | // useful typedefs 24 | typedef Eigen::Matrix Matrix6d; 25 | typedef Eigen::Matrix Matrix26d; 26 | typedef Eigen::Matrix Vector6d; 27 | 28 | // TODO implement this function 29 | /** 30 | * pose estimation using direct method 31 | * @param img1 32 | * @param img2 33 | * @param px_ref 34 | * @param depth_ref 35 | * @param T21 36 | */ 37 | void DirectPoseEstimationMultiLayer( 38 | const cv::Mat &img1, 39 | const cv::Mat &img2, 40 | const VecVector2d &px_ref, 41 | const vector depth_ref, 42 | Sophus::SE3 &T21 43 | ); 44 | 45 | // TODO implement this function 46 | /** 47 | * pose estimation using direct method 48 | * @param img1 49 | * @param img2 50 | * @param px_ref 51 | * @param depth_ref 52 | * @param T21 53 | */ 54 | void DirectPoseEstimationSingleLayer( 55 | const cv::Mat &img1, 56 | const cv::Mat &img2, 57 | const VecVector2d &px_ref, 58 | const vector depth_ref, 59 | Sophus::SE3 &T21 60 | ); 61 | 62 | // bilinear interpolation 63 | inline float GetPixelValue(const cv::Mat &img, float x, float y) { 64 | uchar *data = &img.data[int(y) * img.step + int(x)]; 65 | float xx = x - floor(x); 66 | float yy = y - floor(y); 67 | return float( 68 | (1 - xx) * (1 - yy) * data[0] + 69 | xx * (1 - yy) * data[1] + 70 | (1 - xx) * yy * data[img.step] + 71 | xx * yy * data[img.step + 1] 72 | ); 73 | } 74 | 75 | int main(int argc, char **argv) { 76 | 77 | cv::Mat left_img = cv::imread(left_file, 0); 78 | cv::Mat disparity_img = cv::imread(disparity_file, 0); 79 | 80 | // let's randomly pick pixels in the first image and generate some 3d points in the first image's frame 81 | cv::RNG rng; 82 | int nPoints = 1000; 83 | int boarder = 40; 84 | VecVector2d pixels_ref; 85 | vector depth_ref; 86 | 87 | // generate pixels in ref and load depth data 88 | for (int i = 0; i < nPoints; i++) 89 | { 90 | int x = rng.uniform(boarder, left_img.cols - boarder); // don't pick pixels close to boarder 91 | int y = rng.uniform(boarder, left_img.rows - boarder); // don't pick pixels close to boarder 92 | int disparity = disparity_img.at(y, x); 93 | double depth = fx * baseline / disparity; // you know this is disparity to depth 94 | depth_ref.push_back(depth); 95 | pixels_ref.push_back(Eigen::Vector2d(x, y)); 96 | } 97 | 98 | // estimates 01~05.png's pose using this information 99 | Sophus::SE3 T_cur_ref;//(Eigen::Matrix3d::Identity(),Eigen::Vector3d::Zero()); 100 | 101 | for (int i = 1; i < 6; i++) 102 | { // 1~10 103 | cv::Mat img = cv::imread((fmt_others % i).str(), 0); 104 | // DirectPoseEstimationSingleLayer(left_img, img, pixels_ref, depth_ref, T_cur_ref); // first you need to test single layer 105 | DirectPoseEstimationMultiLayer(left_img, img, pixels_ref, depth_ref, T_cur_ref); 106 | cout << "T_cur_ref = \n" << T_cur_ref.matrix() << endl; 107 | } 108 | } 109 | 110 | void DirectPoseEstimationSingleLayer( 111 | const cv::Mat &img1, 112 | const cv::Mat &img2, 113 | const VecVector2d &px_ref, 114 | const vector depth_ref, 115 | Sophus::SE3 &T21 116 | ) { 117 | 118 | // parameters 119 | int half_patch_size = 4; 120 | int iterations = 100; 121 | 122 | double cost = 0, lastCost = 0; 123 | int nGood = 0; // good projections 124 | VecVector2d goodProjection; 125 | 126 | for (int iter = 0; iter < iterations; iter++) 127 | { 128 | nGood = 0; 129 | goodProjection.clear(); 130 | 131 | // Define Hessian and bias 132 | Matrix6d H = Matrix6d::Zero(); // 6x6 Hessian 133 | Vector6d b = Vector6d::Zero(); // 6x1 bias 134 | 135 | for (size_t i = 0; i < px_ref.size(); i++) 136 | { 137 | // compute the projection in the second image 138 | float u =px_ref[i][0], v = px_ref[i][1]; 139 | double depth = depth_ref[i]; 140 | double xc2_opt = 0,yc2_opt = 0,zc2_opt = 0; 141 | float u2_opt = 0, v2_opt = 0; 142 | 143 | double xc1 = double((u - cx)*depth/fx); 144 | double yc1 = double((v-cy)*depth/fy); 145 | Eigen::Vector3d pc1(xc1,yc1,depth); 146 | Eigen::Vector3d pc2 = T21*pc1; 147 | xc2_opt = pc2[0]; yc2_opt = pc2[1];zc2_opt = pc2[2]; 148 | u2_opt = float(fx*xc2_opt/zc2_opt+cx); 149 | v2_opt = float(fy*yc2_opt/zc2_opt+cy); 150 | 151 | if(u-4<0 || u+4>=img1.cols || v-4 <0 || v+4>=img1.rows || 152 | u2_opt-4<0 || u2_opt+4>=img2.cols || v2_opt -4<0 || v2_opt>=img2.rows) 153 | { 154 | continue; 155 | } 156 | 157 | nGood++; 158 | goodProjection.push_back(Eigen::Vector2d(u2_opt, v2_opt)); 159 | 160 | // and compute error and jacobian 161 | for (int x = -half_patch_size; x < half_patch_size; x++) 162 | for (int y = -half_patch_size; y < half_patch_size; y++) 163 | { 164 | float u1 = float(u+x), v1 = float(v+y); 165 | float u2 = float(u2_opt+x), v2 = float(v2_opt+y); 166 | 167 | double error =GetPixelValue(img1,u1,v1) - GetPixelValue(img2, u2,v2); 168 | 169 | Matrix26d J_pixel_xi = Matrix26d::Zero(); // pixel to \xi in Lie algebra 170 | Eigen::Vector2d J_img_pixel = Eigen::Vector2d::Zero(); // image gradients 171 | 172 | if(u2-1<0 || u2+1>=img2.cols || v2-1<0 || v2+1>img2.rows) 173 | { 174 | continue; 175 | } 176 | J_img_pixel[0] = (GetPixelValue(img2,u2+1,v2) - GetPixelValue(img2,u2-1,v2))/2; 177 | J_img_pixel[1] = (GetPixelValue(img2,u2,v2+1) - GetPixelValue(img2,u2,v2-1))/2; 178 | // total jacobian 179 | J_pixel_xi(0,0) = fx/zc2_opt; 180 | J_pixel_xi(0,2) = -fx * xc2_opt/(zc2_opt*zc2_opt); 181 | J_pixel_xi(0,3) = - fx * xc2_opt * yc2_opt / (zc2_opt*zc2_opt); 182 | J_pixel_xi(0,4) = fx + fx * xc2_opt*zc2_opt /(zc2_opt*zc2_opt); 183 | J_pixel_xi(0,5) = - fx * yc2_opt / zc2_opt; 184 | 185 | J_pixel_xi(1,1) = fy / zc2_opt; 186 | J_pixel_xi(1,2) = -fy * yc2_opt / (zc2_opt*zc2_opt); 187 | J_pixel_xi(1,3) = -fy - fy * yc2_opt*yc2_opt / (zc2_opt*zc2_opt); 188 | J_pixel_xi(1,4) = fy * xc2_opt * yc2_opt / (zc2_opt*zc2_opt); 189 | J_pixel_xi(1,5) = fy * xc2_opt / zc2_opt; 190 | 191 | Vector6d J = -J_pixel_xi.transpose()*J_img_pixel; 192 | 193 | 194 | H += J * J.transpose(); 195 | b += -error * J; 196 | cost += error * error; 197 | } 198 | } 199 | 200 | // solve update and put it into estimation 201 | Vector6d update; 202 | update = H.ldlt().solve(b); 203 | T21 = Sophus::SE3::exp(update) * T21; 204 | 205 | cost /= nGood; 206 | 207 | if (isnan(update[0])) 208 | { 209 | // sometimes occurred when we have a black or white patch and H is irreversible 210 | cout << "update is nan" << endl; 211 | break; 212 | } 213 | if (iter > 0 && cost > lastCost) 214 | { 215 | // cout << "cost increased: " << cost << ", " << lastCost << endl; 216 | break; 217 | } 218 | lastCost = cost; 219 | // cout << "cost = " << cost << ", good = " << nGood << endl; 220 | } 221 | // cout << "good projection: " << nGood << endl; 222 | // cout << "T21 = \n" << T21.matrix() << endl; 223 | 224 | // in order to help you debug, we plot the projected pixels here 225 | cv::Mat img1_show, img2_show; 226 | cv::cvtColor(img1, img1_show, CV_GRAY2BGR); 227 | cv::cvtColor(img2, img2_show, CV_GRAY2BGR); 228 | for (auto &px: px_ref) { 229 | cv::rectangle(img1_show, cv::Point2f(px[0] - 2, px[1] - 2), cv::Point2f(px[0] + 2, px[1] + 2), 230 | cv::Scalar(0, 250, 0)); 231 | } 232 | for (auto &px: goodProjection) { 233 | cv::rectangle(img2_show, cv::Point2f(px[0] - 2, px[1] - 2), cv::Point2f(px[0] + 2, px[1] + 2), 234 | cv::Scalar(0, 250, 0)); 235 | } 236 | cv::imshow("reference", img1_show); 237 | cv::imshow("current", img2_show); 238 | cv::waitKey(100); 239 | } 240 | 241 | void DirectPoseEstimationMultiLayer( 242 | const cv::Mat &img1, 243 | const cv::Mat &img2, 244 | const VecVector2d &px_ref, 245 | const vector depth_ref, 246 | Sophus::SE3 &T21 247 | ) { 248 | 249 | // parameters 250 | int pyramids = 4; 251 | double pyramid_scale = 0.5; 252 | double scales[] = {1.0, 0.5, 0.25, 0.125}; 253 | 254 | // create pyramids 255 | vector pyr1, pyr2; // image pyramids 256 | for(int i = 0;i= 0; level--) 267 | { 268 | VecVector2d px_ref_pyr; // set the keypoints in this pyramid level 269 | for (auto &px: px_ref) 270 | { 271 | px_ref_pyr.push_back(scales[level] * px); 272 | } 273 | 274 | // scale fx, fy, cx, cy in different pyramid levels 275 | fx = fxG*scales[level]; 276 | fy = fyG*scales[level]; 277 | cx = cxG*scales[level]; 278 | cy = cyG*scales[level]; 279 | 280 | DirectPoseEstimationSingleLayer(pyr1[level], pyr2[level], px_ref_pyr, depth_ref, T21); 281 | } 282 | } 283 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/direct_method/disparity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/direct_method/disparity.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/direct_method/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/direct_method/left.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/direct_method/multi_layer_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/direct_method/multi_layer_result.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/direct_method/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/direct_method/right.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/direct_method/sigle_layer_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/direct_method/sigle_layer_result.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/disparity/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 2 | PROJECT(disparity) 3 | 4 | set(CMAKE_CXX_FLAGS "-std=c++11") 5 | 6 | FIND_PACKAGE(OpenCV REQUIRED) 7 | FIND_PACKAGE(Pangolin REQUIRED) 8 | 9 | INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} 10 | ${Pangolin_INCLUDE_DIRS} 11 | "/usr/include/eigen3/") 12 | 13 | ADD_EXECUTABLE(${PROJECT_NAME} disparity.cpp) 14 | 15 | TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS} 16 | ${Pangolin_LIBRARIES}) 17 | 18 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/disparity/disparity.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | using namespace Eigen; 9 | 10 | // 文件路径,如果不对,请调整 11 | string left_file = "../left.png"; 12 | string right_file = "../right.png"; 13 | string disparity_file = "../disparity.png"; 14 | 15 | // 在panglin中画图,已写好,无需调整 16 | void showPointCloud(const vector> &pointcloud); 17 | 18 | int main(int argc, char **argv) { 19 | 20 | // 内参 21 | double fx = 718.856, fy = 718.856, cx = 607.1928, cy = 185.2157; 22 | // 间距 23 | double b = 0.573; 24 | 25 | // 读取图像 26 | cv::Mat left = cv::imread(left_file, 0); 27 | cv::Mat right = cv::imread(right_file, 0); 28 | cv::Mat disparity = cv::imread(disparity_file, 0); // disparty 为CV_8U,单位为像素 29 | 30 | // 生成点云 31 | vector> pointcloud; 32 | 33 | // TODO 根据双目模型计算点云 34 | // 如果你的机器慢,请把后面的v++和u++改成v+=2, u+=2 35 | for (int v = 0; v < left.rows; v++) 36 | for (int u = 0; u < left.cols; u++) { 37 | 38 | Vector4d point(0, 0, 0, left.at(v, u) / 255.0); // 前三维为xyz,第四维为颜色 39 | 40 | // start your code here (~6 lines) 41 | // 根据双目模型计算 point 的位置 42 | uchar d= disparity.at(v,u); 43 | point[2] = (fx*b)/d; 44 | point[1] = point[2]*(v-cy)/fy; 45 | point[0] = point[2]*(u-cx)/fx; 46 | pointcloud.push_back(point); 47 | // end your code here 48 | } 49 | cout<<"pointcloud size: "<> &pointcloud) { 56 | 57 | if (pointcloud.empty()) { 58 | cerr << "Point cloud is empty!" << endl; 59 | return; 60 | } 61 | 62 | pangolin::CreateWindowAndBind("Point Cloud Viewer", 1024, 768); 63 | glEnable(GL_DEPTH_TEST); 64 | glEnable(GL_BLEND); 65 | glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 66 | 67 | pangolin::OpenGlRenderState s_cam( 68 | pangolin::ProjectionMatrix(1024, 768, 500, 500, 512, 389, 0.1, 1000), 69 | pangolin::ModelViewLookAt(0, -0.1, -1.8, 0, 0, 0, 0.0, -1.0, 0.0) 70 | ); 71 | 72 | pangolin::View &d_cam = pangolin::CreateDisplay() 73 | .SetBounds(0.0, 1.0, pangolin::Attach::Pix(175), 1.0, -1024.0f / 768.0f) 74 | .SetHandler(new pangolin::Handler3D(s_cam)); 75 | 76 | while (pangolin::ShouldQuit() == false) { 77 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 78 | 79 | d_cam.Activate(s_cam); 80 | glClearColor(1.0f, 1.0f, 1.0f, 1.0f); 81 | 82 | glPointSize(2); 83 | glBegin(GL_POINTS); 84 | for (auto &p: pointcloud) { 85 | glColor3f(p[3], p[3], p[3]); 86 | glVertex3d(p[0], p[1], p[2]); 87 | } 88 | glEnd(); 89 | pangolin::FinishFrame(); 90 | usleep(5000); // sleep 5 ms 91 | } 92 | return; 93 | } 94 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/disparity/disparity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/disparity/disparity.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/disparity/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/disparity/left.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/disparity/result1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/disparity/result1.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/disparity/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/disparity/right.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/gauessnewton/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 2 | PROJECT(gauessnewton) 3 | set(CMAKE_CXX_FLAGS "-std=c++11") 4 | 5 | find_package(OpenCV REQUIRED) 6 | 7 | INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} 8 | "/usr/include/eigen3/") 9 | ADD_EXECUTABLE(${PROJECT_NAME} gaussnewton.cpp) 10 | TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS}) 11 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/gauessnewton/gaussnewton.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace std; 7 | using namespace Eigen; 8 | 9 | int main(int argc, char **argv) 10 | { 11 | double ar = 1.0, br = 2.0, cr = 1.0; // 真实参数值 12 | double ae = 2.0, be = -1.0, ce = 5.0; // 估计参数值 13 | int N = 100; // 数据点 14 | double w_sigma = 1.0; // 噪声Sigma值 15 | cv::RNG rng; // OpenCV随机数产生器 16 | 17 | vector x_data, y_data; // 数据 18 | for (int i = 0; i < N; i++) 19 | { 20 | double x = i / 100.0; 21 | x_data.push_back(x); 22 | y_data.push_back(exp(ar * x * x + br * x + cr) + rng.gaussian(w_sigma)); 23 | } 24 | 25 | // 开始Gauss-Newton迭代 26 | int iterations = 100; // 迭代次数 27 | double cost = 0, lastCost = 0; // 本次迭代的cost和上一次迭代的cost 28 | 29 | for (int iter = 0; iter < iterations; iter++) 30 | { 31 | Matrix3d H = Matrix3d::Zero(); // Hessian = J^T J in Gauss-Newton 32 | Vector3d b = Vector3d::Zero(); // bias 33 | cost = 0; 34 | 35 | for (int i = 0; i < N; i++) 36 | { 37 | double xi = x_data[i], yi = y_data[i]; // 第i个数据点 38 | double error = 0; // 第i个数据点的计算误差 39 | error =yi -exp(ae*xi*xi+be*xi+ce); // 填写计算error的表达式 40 | Vector3d J; // 雅可比矩阵 41 | J[0] = -exp(ae*xi*xi+be*xi+ce)*xi*xi; // de/da 42 | J[1] = -exp(ae*xi*xi+be*xi+ce)*xi; // de/db 43 | J[2] = -exp(ae*xi*xi+be*xi+ce); // de/dc 44 | 45 | H += J * J.transpose(); // GN近似的H 46 | b += -error * J; 47 | 48 | cost += error * error; 49 | } 50 | 51 | // 求解线性方程 Hx=b,建议用ldlt 52 | Vector3d dx; 53 | dx = H.ldlt().solve(b); 54 | 55 | if (isnan(dx[0])) 56 | { 57 | cout << "result is nan!" << endl; 58 | break; 59 | } 60 | 61 | if (iter > 0 && cost > lastCost) { 62 | // 误差增长了,说明近似的不够好 63 | cout << "cost: " << cost << ", last cost: " << lastCost << endl; 64 | break; 65 | } 66 | 67 | // 更新abc估计值 68 | ae += dx[0]; 69 | be += dx[1]; 70 | ce += dx[2]; 71 | 72 | lastCost = cost; 73 | 74 | cout << "total cost: " << cost << endl; 75 | } 76 | 77 | cout << "estimated abc = " << ae << ", " << be << ", " << ce << endl; 78 | return 0; 79 | } 80 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/gauessnewton/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/gauessnewton/result.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/icp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 2 | 3 | SET(BUILD_TYPE Release) 4 | 5 | PROJECT(icp) 6 | 7 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3") 8 | 9 | LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules ) 10 | 11 | set(Sophus_DIR /home/yxl/workspace/gaoxiangSlambook/slambook/3rdparty/Sophus/build/) 12 | FIND_PACKAGE(Sophus REQUIRED) 13 | FIND_PACKAGE(Pangolin REQUIRED) 14 | FIND_PACKAGE(G2O REQUIRED) 15 | FIND_PACKAGE(CSparse REQUIRED) 16 | 17 | INCLUDE_DIRECTORIES(${Sophus_INCLUDE_DIRS} 18 | "/usr/include/eigen3" 19 | ${Pangolin_INCLUDE_DIRS} 20 | ${G2O_INCLUDE_DIRS} 21 | ${CSPARSE_INCLUDE_DIR} 22 | ) 23 | 24 | MESSAGE(STATUS "Sophus INCLUD: ${Sophus_INCLUDE_DIRS} \n ${Sophus_LIBRARIES}") 25 | 26 | MESSAGE(STATUS "Pangolin INCLUD: ${Pangolin_INCLUDE_DIRS} \n ${Pangolin_LIBRARIES}") 27 | 28 | MESSAGE(STATUS "G2O INCLUD: ${G2O_INCLUDE_DIRS} ") 29 | 30 | 31 | ADD_EXECUTABLE(${PROJECT_NAME} icp.cpp) 32 | 33 | TARGET_LINK_LIBRARIES(${PROJECT_NAME} 34 | ${Sophus_LIBRARIES} 35 | ${Pangolin_LIBRARIES} 36 | g2o_core g2o_stuff g2o_types_sba g2o_csparse_extension 37 | ${CSPARSE_LIBRARY} 38 | ) -------------------------------------------------------------------------------- /vslam_fourteen_lectures/icp/ba_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/icp/ba_result.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/icp/ba_result1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/icp/ba_result1.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/icp/cmake_modules/FindCSparse.cmake: -------------------------------------------------------------------------------- 1 | # Look for csparse; note the difference in the directory specifications! 2 | FIND_PATH(CSPARSE_INCLUDE_DIR NAMES cs.h 3 | PATHS 4 | /usr/include/suitesparse 5 | /usr/include 6 | /opt/local/include 7 | /usr/local/include 8 | /sw/include 9 | /usr/include/ufsparse 10 | /opt/local/include/ufsparse 11 | /usr/local/include/ufsparse 12 | /sw/include/ufsparse 13 | ) 14 | 15 | FIND_LIBRARY(CSPARSE_LIBRARY NAMES cxsparse 16 | PATHS 17 | /usr/lib 18 | /usr/local/lib 19 | /opt/local/lib 20 | /sw/lib 21 | ) 22 | 23 | include(FindPackageHandleStandardArgs) 24 | find_package_handle_standard_args(CSPARSE DEFAULT_MSG 25 | CSPARSE_INCLUDE_DIR CSPARSE_LIBRARY) 26 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/icp/cmake_modules/FindG2O.cmake: -------------------------------------------------------------------------------- 1 | # Find the header files 2 | 3 | FIND_PATH(G2O_INCLUDE_DIR g2o/core/base_vertex.h 4 | ${G2O_ROOT}/include 5 | $ENV{G2O_ROOT}/include 6 | $ENV{G2O_ROOT} 7 | /usr/local/include 8 | /usr/include 9 | /opt/local/include 10 | /sw/local/include 11 | /sw/include 12 | NO_DEFAULT_PATH 13 | ) 14 | 15 | # Macro to unify finding both the debug and release versions of the 16 | # libraries; this is adapted from the OpenSceneGraph FIND_LIBRARY 17 | # macro. 18 | 19 | MACRO(FIND_G2O_LIBRARY MYLIBRARY MYLIBRARYNAME) 20 | 21 | FIND_LIBRARY("${MYLIBRARY}_DEBUG" 22 | NAMES "g2o_${MYLIBRARYNAME}_d" 23 | PATHS 24 | ${G2O_ROOT}/lib/Debug 25 | ${G2O_ROOT}/lib 26 | $ENV{G2O_ROOT}/lib/Debug 27 | $ENV{G2O_ROOT}/lib 28 | NO_DEFAULT_PATH 29 | ) 30 | 31 | FIND_LIBRARY("${MYLIBRARY}_DEBUG" 32 | NAMES "g2o_${MYLIBRARYNAME}_d" 33 | PATHS 34 | ~/Library/Frameworks 35 | /Library/Frameworks 36 | /usr/local/lib 37 | /usr/local/lib64 38 | /usr/lib 39 | /usr/lib64 40 | /opt/local/lib 41 | /sw/local/lib 42 | /sw/lib 43 | ) 44 | 45 | FIND_LIBRARY(${MYLIBRARY} 46 | NAMES "g2o_${MYLIBRARYNAME}" 47 | PATHS 48 | ${G2O_ROOT}/lib/Release 49 | ${G2O_ROOT}/lib 50 | $ENV{G2O_ROOT}/lib/Release 51 | $ENV{G2O_ROOT}/lib 52 | NO_DEFAULT_PATH 53 | ) 54 | 55 | FIND_LIBRARY(${MYLIBRARY} 56 | NAMES "g2o_${MYLIBRARYNAME}" 57 | PATHS 58 | ~/Library/Frameworks 59 | /Library/Frameworks 60 | /usr/local/lib 61 | /usr/local/lib64 62 | /usr/lib 63 | /usr/lib64 64 | /opt/local/lib 65 | /sw/local/lib 66 | /sw/lib 67 | ) 68 | 69 | IF(NOT ${MYLIBRARY}_DEBUG) 70 | IF(MYLIBRARY) 71 | SET(${MYLIBRARY}_DEBUG ${MYLIBRARY}) 72 | ENDIF(MYLIBRARY) 73 | ENDIF( NOT ${MYLIBRARY}_DEBUG) 74 | 75 | ENDMACRO(FIND_G2O_LIBRARY LIBRARY LIBRARYNAME) 76 | 77 | # Find the core elements 78 | FIND_G2O_LIBRARY(G2O_STUFF_LIBRARY stuff) 79 | FIND_G2O_LIBRARY(G2O_CORE_LIBRARY core) 80 | 81 | # Find the CLI library 82 | FIND_G2O_LIBRARY(G2O_CLI_LIBRARY cli) 83 | 84 | # Find the pluggable solvers 85 | FIND_G2O_LIBRARY(G2O_SOLVER_CHOLMOD solver_cholmod) 86 | FIND_G2O_LIBRARY(G2O_SOLVER_CSPARSE solver_csparse) 87 | FIND_G2O_LIBRARY(G2O_SOLVER_CSPARSE_EXTENSION csparse_extension) 88 | FIND_G2O_LIBRARY(G2O_SOLVER_DENSE solver_dense) 89 | FIND_G2O_LIBRARY(G2O_SOLVER_PCG solver_pcg) 90 | FIND_G2O_LIBRARY(G2O_SOLVER_SLAM2D_LINEAR solver_slam2d_linear) 91 | FIND_G2O_LIBRARY(G2O_SOLVER_STRUCTURE_ONLY solver_structure_only) 92 | FIND_G2O_LIBRARY(G2O_SOLVER_EIGEN solver_eigen) 93 | 94 | # Find the predefined types 95 | FIND_G2O_LIBRARY(G2O_TYPES_DATA types_data) 96 | FIND_G2O_LIBRARY(G2O_TYPES_ICP types_icp) 97 | FIND_G2O_LIBRARY(G2O_TYPES_SBA types_sba) 98 | FIND_G2O_LIBRARY(G2O_TYPES_SCLAM2D types_sclam2d) 99 | FIND_G2O_LIBRARY(G2O_TYPES_SIM3 types_sim3) 100 | FIND_G2O_LIBRARY(G2O_TYPES_SLAM2D types_slam2d) 101 | FIND_G2O_LIBRARY(G2O_TYPES_SLAM3D types_slam3d) 102 | 103 | # G2O solvers declared found if we found at least one solver 104 | SET(G2O_SOLVERS_FOUND "NO") 105 | IF(G2O_SOLVER_CHOLMOD OR G2O_SOLVER_CSPARSE OR G2O_SOLVER_DENSE OR G2O_SOLVER_PCG OR G2O_SOLVER_SLAM2D_LINEAR OR G2O_SOLVER_STRUCTURE_ONLY OR G2O_SOLVER_EIGEN) 106 | SET(G2O_SOLVERS_FOUND "YES") 107 | ENDIF(G2O_SOLVER_CHOLMOD OR G2O_SOLVER_CSPARSE OR G2O_SOLVER_DENSE OR G2O_SOLVER_PCG OR G2O_SOLVER_SLAM2D_LINEAR OR G2O_SOLVER_STRUCTURE_ONLY OR G2O_SOLVER_EIGEN) 108 | 109 | # G2O itself declared found if we found the core libraries and at least one solver 110 | SET(G2O_FOUND "NO") 111 | IF(G2O_STUFF_LIBRARY AND G2O_CORE_LIBRARY AND G2O_INCLUDE_DIR AND G2O_SOLVERS_FOUND) 112 | SET(G2O_FOUND "YES") 113 | ENDIF(G2O_STUFF_LIBRARY AND G2O_CORE_LIBRARY AND G2O_INCLUDE_DIR AND G2O_SOLVERS_FOUND) 114 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/icp/icp.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | 20 | 21 | using namespace std; 22 | using namespace Eigen; 23 | 24 | 25 | string trajectory_file = "../compare.txt"; 26 | 27 | 28 | 29 | 30 | double timestamp_g ,timestamp_e; 31 | Eigen::Vector3d tg, te; 32 | Eigen::Quaterniond qg, qe; 33 | Sophus::SE3 Tg , Te; 34 | 35 | 36 | // start point is red and end point is blue 37 | void DrawTrajectory(vector> pose, vector> pose2); 38 | 39 | void pose_estimation_3d3d (const vector& pts1, 40 | const vector& pts2, 41 | Eigen::Matrix3d& R, Eigen::Vector3d& t 42 | ); 43 | 44 | void bundleAdjustment ( 45 | const vector< Eigen::Vector3d>& pts1, 46 | const vector< Eigen::Vector3d >& pts2, 47 | Eigen::Matrix3d& R, Eigen::Vector3d& t ); 48 | 49 | 50 | int main(int argc, char **argv) 51 | { 52 | vector> poses_g, poses_e, poses_c; 53 | 54 | vector position_g, position_e; 55 | ifstream trajectory; 56 | trajectory.open(trajectory_file.c_str()); 57 | 58 | if(!trajectory) 59 | { 60 | cout<<"open file error!"<>timestamp_e>>te[0]>>te[1]>>te[2]>>qe.x()>>qe.y()>>qe.z()>>qe.w() 68 | >>timestamp_g>>tg[0]>>tg[1]>>tg[2]>>qg.x()>>qg.y()>>qg.z()>>qg.w(); 69 | Te = Sophus::SE3(qe,te); 70 | Tg = Sophus::SE3(qg,tg); 71 | position_g.push_back(tg); 72 | position_e.push_back(te); 73 | poses_g.push_back(Tg); 74 | poses_e.push_back(Te); 75 | } 76 | trajectory.close(); 77 | // DrawTrajectory(poses_g, poses_e); 78 | 79 | Eigen::Matrix3d R = Eigen::Matrix3d::Identity(); 80 | Eigen::Vector3d t = Eigen::Vector3d::Zero(); 81 | 82 | // pose_estimation_3d3d(position_g, position_e, R,t); 83 | bundleAdjustment(position_g, position_e, R,t); 84 | 85 | Sophus::SE3 Tge(R,t); 86 | 87 | // cout<<"the T is "< 99 | { 100 | public: 101 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW; 102 | EdgeProjectXYZRGBDPoseOnly( const Eigen::Vector3d& point ) : _point(point) {} 103 | 104 | virtual void computeError() 105 | { 106 | const g2o::VertexSE3Expmap* pose = static_cast ( _vertices[0] ); 107 | // measurement is p, point is p' 108 | _error = _measurement - pose->estimate().map( _point ); 109 | } 110 | 111 | virtual void linearizeOplus() 112 | { 113 | g2o::VertexSE3Expmap* pose = static_cast(_vertices[0]); 114 | g2o::SE3Quat T(pose->estimate()); 115 | Eigen::Vector3d xyz_trans = T.map(_point); 116 | double x = xyz_trans[0]; 117 | double y = xyz_trans[1]; 118 | double z = xyz_trans[2]; 119 | 120 | _jacobianOplusXi(0,0) = 0; 121 | _jacobianOplusXi(0,1) = -z; 122 | _jacobianOplusXi(0,2) = y; 123 | _jacobianOplusXi(0,3) = -1; 124 | _jacobianOplusXi(0,4) = 0; 125 | _jacobianOplusXi(0,5) = 0; 126 | 127 | _jacobianOplusXi(1,0) = z; 128 | _jacobianOplusXi(1,1) = 0; 129 | _jacobianOplusXi(1,2) = -x; 130 | _jacobianOplusXi(1,3) = 0; 131 | _jacobianOplusXi(1,4) = -1; 132 | _jacobianOplusXi(1,5) = 0; 133 | 134 | _jacobianOplusXi(2,0) = -y; 135 | _jacobianOplusXi(2,1) = x; 136 | _jacobianOplusXi(2,2) = 0; 137 | _jacobianOplusXi(2,3) = 0; 138 | _jacobianOplusXi(2,4) = 0; 139 | _jacobianOplusXi(2,5) = -1; 140 | } 141 | 142 | bool read ( istream& in ) {} 143 | bool write ( ostream& out ) const {} 144 | protected: 145 | Eigen::Vector3d _point; 146 | }; 147 | 148 | 149 | void bundleAdjustment ( 150 | const vector< Eigen::Vector3d>& pts1, 151 | const vector< Eigen::Vector3d >& pts2, 152 | Eigen::Matrix3d& R, Eigen::Vector3d& t ) 153 | { 154 | // 初始化g2o 155 | typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block; // pose维度为 6, landmark 维度为 3 156 | Block::LinearSolverType* linearSolver = new g2o::LinearSolverEigen(); // 线性方程求解器 157 | Block* solver_ptr = new Block( linearSolver ); // 矩阵块求解器 158 | g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewton( solver_ptr ); 159 | g2o::SparseOptimizer optimizer; 160 | optimizer.setAlgorithm( solver ); 161 | 162 | // vertex 163 | g2o::VertexSE3Expmap* pose = new g2o::VertexSE3Expmap(); // camera pose 164 | pose->setId(0); 165 | pose->setEstimate( g2o::SE3Quat( 166 | Eigen::Matrix3d::Identity(), 167 | Eigen::Vector3d( 0,0,0 ) 168 | ) ); 169 | optimizer.addVertex( pose ); 170 | 171 | // edges 172 | int index = 1; 173 | vector edges; 174 | for ( size_t i=0; isetId( index ); 178 | edge->setVertex( 0, dynamic_cast (pose) ); 179 | edge->setMeasurement( pts1[i]); 180 | edge->setInformation( Eigen::Matrix3d::Identity()*1e4 ); 181 | optimizer.addEdge(edge); 182 | index++; 183 | edges.push_back(edge); 184 | } 185 | 186 | // chrono::steady_clock::time_point t1 = chrono::steady_clock::now(); 187 | optimizer.setVerbose( true ); //可以打印出优化过程信息 188 | optimizer.initializeOptimization(); 189 | optimizer.optimize(10); 190 | // chrono::steady_clock::time_point t2 = chrono::steady_clock::now(); 191 | // chrono::duration time_used = chrono::duration_cast>(t2-t1); 192 | // cout<<"optimization costs time: "< 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace std; 7 | using namespace cv; 8 | 9 | // this program shows how to use optical flow 10 | 11 | string file_1 = "../1.png"; // first image 12 | string file_2 = "../2.png"; // second image 13 | 14 | // TODO implement this funciton 15 | /** 16 | * single level optical flow 17 | * @param [in] img1 the first image 18 | * @param [in] img2 the second image 19 | * @param [in] kp1 keypoints in img1 20 | * @param [in|out] kp2 keypoints in img2, if empty, use initial guess in kp1 21 | * @param [out] success true if a keypoint is tracked successfully 22 | * @param [in] inverse use inverse formulation? 23 | */ 24 | void OpticalFlowSingleLevel( 25 | const Mat &img1, 26 | const Mat &img2, 27 | const vector &kp1, 28 | vector &kp2, 29 | vector &success, 30 | bool inverse = true 31 | ); 32 | 33 | // TODO implement this funciton 34 | /** 35 | * multi level optical flow, scale of pyramid is set to 2 by default 36 | * the image pyramid will be create inside the function 37 | * @param [in] img1 the first pyramid 38 | * @param [in] img2 the second pyramid 39 | * @param [in] kp1 keypoints in img1 40 | * @param [out] kp2 keypoints in img2 41 | * @param [out] success true if a keypoint is tracked successfully 42 | * @param [in] inverse set true to enable inverse formulation 43 | */ 44 | void OpticalFlowMultiLevel( 45 | const Mat &img1, 46 | const Mat &img2, 47 | const vector &kp1, 48 | vector &kp2, 49 | vector &success, 50 | bool inverse = false 51 | ); 52 | 53 | /** 54 | * get a gray scale value from reference image (bi-linear interpolated) 55 | * @param img 56 | * @param x 57 | * @param y 58 | * @return 59 | */ 60 | inline float GetPixelValue(const cv::Mat &img, float x, float y) 61 | { 62 | uchar *data = &img.data[int(y) * img.step + int(x)]; 63 | float xx = x - floor(x); 64 | float yy = y - floor(y); 65 | return float( 66 | (1 - xx) * (1 - yy) * data[0] + 67 | xx * (1 - yy) * data[1] + 68 | (1 - xx) * yy * data[img.step] + 69 | xx * yy * data[img.step + 1] 70 | ); 71 | } 72 | 73 | 74 | int main(int argc, char **argv) { 75 | 76 | // images, note they are CV_8UC1, not CV_8UC3 77 | Mat img1 = imread(file_1, 0); 78 | Mat img2 = imread(file_2, 0); 79 | 80 | // key points, using GFTT here. 81 | vector kp1; 82 | Ptr detector = GFTTDetector::create(500, 0.01, 20); // maximum 500 keypoints 83 | detector->detect(img1, kp1); 84 | 85 | // now lets track these key points in the second image 86 | // first use single level LK in the validation picture 87 | vector kp2_single; 88 | vector success_single; 89 | OpticalFlowSingleLevel(img1, img2, kp1, kp2_single, success_single); 90 | 91 | // then test multi-level LK 92 | vector kp2_multi; 93 | vector success_multi; 94 | OpticalFlowMultiLevel(img1, img2, kp1, kp2_multi, success_multi); 95 | 96 | // use opencv's flow for validation 97 | vector pt1, pt2; 98 | for (auto &kp: kp1) pt1.push_back(kp.pt); 99 | vector status; 100 | vector error; 101 | cv::calcOpticalFlowPyrLK(img1, img2, pt1, pt2, status, error, cv::Size(8, 8)); 102 | 103 | // plot the differences of those functions 104 | Mat img2_single; 105 | cv::cvtColor(img2, img2_single, CV_GRAY2BGR); 106 | for (int i = 0; i < kp2_single.size(); i++) { 107 | if (success_single[i]) { 108 | cv::circle(img2_single, kp2_single[i].pt, 2, cv::Scalar(0, 250, 0), 2); 109 | cv::line(img2_single, kp1[i].pt, kp2_single[i].pt, cv::Scalar(0, 250, 0)); 110 | } 111 | } 112 | 113 | Mat img2_multi; 114 | cv::cvtColor(img2, img2_multi, CV_GRAY2BGR); 115 | for (int i = 0; i < kp2_multi.size(); i++) { 116 | if (success_multi[i]) { 117 | cv::circle(img2_multi, kp2_multi[i].pt, 2, cv::Scalar(0, 250, 0), 2); 118 | cv::line(img2_multi, kp1[i].pt, kp2_multi[i].pt, cv::Scalar(0, 250, 0)); 119 | } 120 | } 121 | 122 | Mat img2_CV; 123 | cv::cvtColor(img2, img2_CV, CV_GRAY2BGR); 124 | for (int i = 0; i < pt2.size(); i++) { 125 | if (status[i]) { 126 | cv::circle(img2_CV, pt2[i], 2, cv::Scalar(0, 250, 0), 2); 127 | cv::line(img2_CV, pt1[i], pt2[i], cv::Scalar(0, 250, 0)); 128 | } 129 | } 130 | 131 | cv::imshow("tracked single level", img2_single); 132 | cv::imwrite("../single_i.png", img2_single); 133 | cv::imshow("tracked multi level", img2_multi); 134 | cv::imwrite("../multi_i.png", img2_multi); 135 | cv::imshow("tracked by opencv", img2_CV); 136 | cv::imwrite("../opencv_op.png", img2_CV); 137 | cv::waitKey(0); 138 | 139 | return 0; 140 | } 141 | 142 | void OpticalFlowSingleLevel( 143 | const Mat &img1, 144 | const Mat &img2, 145 | const vector &kp1, 146 | vector &kp2, 147 | vector &success, 148 | bool inverse 149 | ) { 150 | 151 | // parameters 152 | int half_patch_size = 4; 153 | int iterations = 10; 154 | bool have_initial = !kp2.empty(); 155 | 156 | for (size_t i = 0; i < kp1.size(); i++) 157 | { 158 | auto kp = kp1[i]; 159 | double dx = 0, dy = 0; // dx,dy need to be estimated 160 | if (have_initial) 161 | { 162 | dx = kp2[i].pt.x - kp.pt.x; 163 | dy = kp2[i].pt.y - kp.pt.y; 164 | } 165 | 166 | double cost = 0, lastCost = 0; 167 | bool succ = true; // indicate if this point succeeded 168 | 169 | // Gauss-Newton iterations 170 | for (int iter = 0; iter < iterations; iter++) 171 | { 172 | Eigen::Matrix2d H = Eigen::Matrix2d::Zero(); 173 | Eigen::Vector2d b = Eigen::Vector2d::Zero(); 174 | cost = 0; 175 | 176 | if (kp.pt.x + dx <= half_patch_size || kp.pt.x + dx >= img1.cols - half_patch_size || 177 | kp.pt.y + dy <= half_patch_size || kp.pt.y + dy >= img1.rows - half_patch_size) 178 | { // go outside 179 | succ = false; 180 | break; 181 | } 182 | 183 | // compute cost and jacobian 184 | for (int x = -half_patch_size; x < half_patch_size; x++) 185 | for (int y = -half_patch_size; y < half_patch_size; y++) 186 | { 187 | double error = 0; 188 | float u1 = float(kp.pt.x + x), v1 = float(kp.pt.y+y); 189 | float u2 = float(u1+dx), v2 = float(v1+dy); 190 | Eigen::Vector2d J; // Jacobian 191 | if (inverse == false) 192 | { 193 | J.x() = double(GetPixelValue(img2,u2+1,v2) - GetPixelValue(img2,u2-1,v2))/2; 194 | J.y() = double(GetPixelValue(img2,u2,v2+1) - GetPixelValue(img2,u2,v2-1))/2; 195 | error = double(GetPixelValue(img2,u2,v2) - GetPixelValue(img1,u1,v1)); 196 | // Forward Jacobian 197 | } else 198 | { 199 | // Inverse Jacobian 200 | // NOTE this J does not change when dx, dy is updated, so we can store it and only compute error 201 | J.x() = double(GetPixelValue(img1,u1+1,v1) - GetPixelValue(img1,u1-1,v1))/2; 202 | J.y() = double(GetPixelValue(img1,u1,v1+1) - GetPixelValue(img1,u1,v1-1))/2; 203 | error = double(GetPixelValue(img2,u2,v2) - GetPixelValue(img1,u1,v1)); 204 | } 205 | 206 | H += J*J.transpose(); 207 | b += -J*error; 208 | cost += error*error; 209 | } 210 | 211 | // compute update 212 | Eigen::Vector2d update; 213 | update = H.ldlt().solve(b); 214 | 215 | if (isnan(update[0])) 216 | { 217 | // sometimes occurred when we have a black or white patch and H is irreversible 218 | cout << "update is nan" << endl; 219 | succ = false; 220 | break; 221 | } 222 | if (iter > 0 && cost > lastCost) 223 | { 224 | cout << "cost increased: " << cost << ", " << lastCost << endl; 225 | break; 226 | } 227 | 228 | // update dx, dy 229 | dx += update[0]; 230 | dy += update[1]; 231 | lastCost = cost; 232 | succ = true; 233 | } 234 | success.push_back(succ); 235 | // set kp2 236 | if (have_initial) 237 | { 238 | kp2[i].pt = kp.pt + Point2f(dx, dy); 239 | } else 240 | { 241 | KeyPoint tracked = kp; 242 | tracked.pt += cv::Point2f(dx, dy); 243 | kp2.push_back(tracked); 244 | } 245 | } 246 | } 247 | 248 | void OpticalFlowMultiLevel( 249 | const Mat &img1, 250 | const Mat &img2, 251 | const vector &kp1, 252 | vector &kp2, 253 | vector &success, 254 | bool inverse) { 255 | 256 | // parameters 257 | int pyramids = 4; 258 | double pyramid_scale = 0.5; 259 | double scales[] = {1.0, 0.5, 0.25, 0.125}; 260 | 261 | // create pyramids 262 | vector pyr1, pyr2; // image pyramids 263 | // TODO START YOUR CODE HERE (~8 lines) 264 | for (int i = 0; i < pyramids; i++) 265 | { 266 | Mat img1_temp, img2_temp; 267 | resize(img1, img1_temp,Size(img1.cols*scales[i], img1.rows*scales[i])); 268 | resize(img2, img2_temp,Size(img2.cols*scales[i], img2.rows*scales[i])); 269 | pyr1.push_back(img1_temp); 270 | pyr2.push_back(img2_temp); 271 | cout<<"Pyramid"< vkp2_now; 275 | vector vkp2_last; 276 | vector vsucc; 277 | for(int i = pyramids-1;i>=0;i--) 278 | { 279 | vector vkp1; 280 | for(int j = 0; j 2 | #include 3 | #include 4 | #include 5 | 6 | // need pangolin for plotting trajectory 7 | #include 8 | 9 | using namespace std; 10 | 11 | // path to trajectory file 12 | string trajectory_file_g = "../groundtruth.txt"; 13 | double timestamp_g; 14 | Eigen::Vector3d tg; 15 | Eigen::Quaterniond qg; 16 | Sophus::SE3 Tg; 17 | 18 | 19 | string trajectory_file_e = "../estimated.txt"; 20 | double timestamp_e; 21 | Eigen::Vector3d te; 22 | Eigen::Quaterniond qe; 23 | Sophus::SE3 Te; 24 | 25 | Eigen::Matrix kesi; 26 | double error = 0; 27 | double RMSE; 28 | 29 | int main(int argc, char **argv) 30 | { 31 | // vector> poses; 32 | 33 | ifstream trajectory_g; 34 | ifstream trajectory_e; 35 | trajectory_g.open(trajectory_file_g.c_str()); 36 | trajectory_e.open(trajectory_file_e.c_str()); 37 | 38 | if(!trajectory_g || ! trajectory_e) 39 | { 40 | cout<<"open file error!"<>timestamp_g>>tg[0]>>tg[1]>>tg[2]>>qg.x()>>qg.y()>>qg.z()>>qg.w(); 52 | templine_e>>timestamp_e>>te[0]>>te[1]>>te[2]>>qe.x()>>qe.y()>>qe.z()>>qe.w(); 53 | Tg = Sophus::SE3(qg,tg); 54 | Te = Sophus::SE3(qe,te); 55 | 56 | kesi = (Tg.inverse()*Te).log(); 57 | error += kesi.transpose()*kesi; 58 | num++; 59 | } 60 | trajectory_g.close(); 61 | trajectory_e.close(); 62 | RMSE = sqrt(error/num); 63 | cout<<"RMSE: "< 2 | #include 3 | #include 4 | #include 5 | 6 | // need pangolin for plotting trajectory 7 | #include 8 | 9 | using namespace std; 10 | 11 | // path to trajectory file 12 | string trajectory_file = "../trajectory.txt"; 13 | double timestamp; 14 | Eigen::Vector3d t; 15 | Eigen::Quaterniond q; 16 | Sophus::SE3 T; 17 | ifstream ifTraject; 18 | 19 | // function for plotting trajectory, don't edit this code 20 | // start point is red and end point is blue 21 | void DrawTrajectory(vector>); 22 | 23 | int main(int argc, char **argv) 24 | { 25 | vector> poses; 26 | 27 | ifstream trajectory; 28 | trajectory.open(trajectory_file.c_str()); 29 | 30 | if(!trajectory) 31 | { 32 | cout<<"open file error!"<>timestamp>>t[0]>>t[1]>>t[2]>>q.x()>>q.y()>>q.z()>>q.w(); 40 | T = Sophus::SE3(q,t); 41 | poses.push_back(T); 42 | } 43 | trajectory.close(); 44 | DrawTrajectory(poses); 45 | return 0; 46 | } 47 | 48 | /*******************************************************************************************/ 49 | void DrawTrajectory(vector> poses) { 50 | if (poses.empty()) { 51 | cerr << "Trajectory is empty!" << endl; 52 | return; 53 | } 54 | 55 | // create pangolin window and plot the trajectory 56 | pangolin::CreateWindowAndBind("Trajectory Viewer", 1024, 768); 57 | glEnable(GL_DEPTH_TEST); 58 | glEnable(GL_BLEND); 59 | glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 60 | 61 | pangolin::OpenGlRenderState s_cam( 62 | pangolin::ProjectionMatrix(1024, 768, 500, 500, 512, 389, 0.1, 1000), 63 | pangolin::ModelViewLookAt(0, -0.1, -1.8, 0, 0, 0, 0.0, -1.0, 0.0) 64 | ); 65 | 66 | pangolin::View &d_cam = pangolin::CreateDisplay() 67 | .SetBounds(0.0, 1.0, pangolin::Attach::Pix(175), 1.0, -1024.0f / 768.0f) 68 | .SetHandler(new pangolin::Handler3D(s_cam)); 69 | 70 | 71 | while (pangolin::ShouldQuit() == false) { 72 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 73 | 74 | d_cam.Activate(s_cam); 75 | glClearColor(1.0f, 1.0f, 1.0f, 1.0f); 76 | 77 | glLineWidth(2); 78 | for (size_t i = 0; i < poses.size() - 1; i++) { 79 | glColor3f(1 - (float) i / poses.size(), 0.0f, (float) i / poses.size()); 80 | glBegin(GL_LINES); 81 | auto p1 = poses[i], p2 = poses[i + 1]; 82 | glVertex3d(p1.translation()[0], p1.translation()[1], p1.translation()[2]); 83 | glVertex3d(p2.translation()[0], p2.translation()[1], p2.translation()[2]); 84 | glEnd(); 85 | } 86 | pangolin::FinishFrame(); 87 | usleep(5000); // sleep 5 ms 88 | } 89 | 90 | } -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 2 | PROJECT(undistort) 3 | set(CMAKE_CXX_FLAGS "-std=c++11") 4 | 5 | FIND_PACKAGE(OpenCV REQUIRED) 6 | INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) 7 | ADD_EXECUTABLE(${PROJECT_NAME} undistort_image.cpp) 8 | TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS}) -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeCache.txt: -------------------------------------------------------------------------------- 1 | # This is the CMakeCache file. 2 | # For build in directory: /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build 3 | # It was generated by CMake: /usr/local/bin/cmake 4 | # You can edit this file to change values found and used by cmake. 5 | # If you do not want to change any of the values, simply exit the editor. 6 | # If you do want to change a value, simply edit, save, and exit the editor. 7 | # The syntax for the file is as follows: 8 | # KEY:TYPE=VALUE 9 | # KEY is the name of a variable in the cache. 10 | # TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. 11 | # VALUE is the current value for the KEY. 12 | 13 | ######################## 14 | # EXTERNAL cache entries 15 | ######################## 16 | 17 | //Path to a program. 18 | CMAKE_AR:FILEPATH=/usr/bin/ar 19 | 20 | //Choose the type of build, options are: None Debug Release RelWithDebInfo 21 | // MinSizeRel ... 22 | CMAKE_BUILD_TYPE:STRING= 23 | 24 | //Enable/Disable color output during build. 25 | CMAKE_COLOR_MAKEFILE:BOOL=ON 26 | 27 | //CXX compiler 28 | CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ 29 | 30 | //A wrapper around 'ar' adding the appropriate '--plugin' option 31 | // for the GCC compiler 32 | CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 33 | 34 | //A wrapper around 'ranlib' adding the appropriate '--plugin' option 35 | // for the GCC compiler 36 | CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 37 | 38 | //Flags used by the CXX compiler during all build types. 39 | CMAKE_CXX_FLAGS:STRING= 40 | 41 | //Flags used by the CXX compiler during DEBUG builds. 42 | CMAKE_CXX_FLAGS_DEBUG:STRING=-g 43 | 44 | //Flags used by the CXX compiler during MINSIZEREL builds. 45 | CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 46 | 47 | //Flags used by the CXX compiler during RELEASE builds. 48 | CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 49 | 50 | //Flags used by the CXX compiler during RELWITHDEBINFO builds. 51 | CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 52 | 53 | //C compiler 54 | CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc 55 | 56 | //A wrapper around 'ar' adding the appropriate '--plugin' option 57 | // for the GCC compiler 58 | CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 59 | 60 | //A wrapper around 'ranlib' adding the appropriate '--plugin' option 61 | // for the GCC compiler 62 | CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 63 | 64 | //Flags used by the C compiler during all build types. 65 | CMAKE_C_FLAGS:STRING= 66 | 67 | //Flags used by the C compiler during DEBUG builds. 68 | CMAKE_C_FLAGS_DEBUG:STRING=-g 69 | 70 | //Flags used by the C compiler during MINSIZEREL builds. 71 | CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 72 | 73 | //Flags used by the C compiler during RELEASE builds. 74 | CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 75 | 76 | //Flags used by the C compiler during RELWITHDEBINFO builds. 77 | CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 78 | 79 | //Flags used by the linker during all build types. 80 | CMAKE_EXE_LINKER_FLAGS:STRING= 81 | 82 | //Flags used by the linker during DEBUG builds. 83 | CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= 84 | 85 | //Flags used by the linker during MINSIZEREL builds. 86 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= 87 | 88 | //Flags used by the linker during RELEASE builds. 89 | CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= 90 | 91 | //Flags used by the linker during RELWITHDEBINFO builds. 92 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 93 | 94 | //Enable/Disable output of compile commands during generation. 95 | CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF 96 | 97 | //Install path prefix, prepended onto install directories. 98 | CMAKE_INSTALL_PREFIX:PATH=/usr/local 99 | 100 | //Path to a program. 101 | CMAKE_LINKER:FILEPATH=/usr/bin/ld 102 | 103 | //Path to a program. 104 | CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make 105 | 106 | //Flags used by the linker during the creation of modules during 107 | // all build types. 108 | CMAKE_MODULE_LINKER_FLAGS:STRING= 109 | 110 | //Flags used by the linker during the creation of modules during 111 | // DEBUG builds. 112 | CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= 113 | 114 | //Flags used by the linker during the creation of modules during 115 | // MINSIZEREL builds. 116 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= 117 | 118 | //Flags used by the linker during the creation of modules during 119 | // RELEASE builds. 120 | CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= 121 | 122 | //Flags used by the linker during the creation of modules during 123 | // RELWITHDEBINFO builds. 124 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 125 | 126 | //Path to a program. 127 | CMAKE_NM:FILEPATH=/usr/bin/nm 128 | 129 | //Path to a program. 130 | CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy 131 | 132 | //Path to a program. 133 | CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump 134 | 135 | //Value Computed by CMake 136 | CMAKE_PROJECT_NAME:STATIC=undistort 137 | 138 | //Path to a program. 139 | CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib 140 | 141 | //Flags used by the linker during the creation of shared libraries 142 | // during all build types. 143 | CMAKE_SHARED_LINKER_FLAGS:STRING= 144 | 145 | //Flags used by the linker during the creation of shared libraries 146 | // during DEBUG builds. 147 | CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= 148 | 149 | //Flags used by the linker during the creation of shared libraries 150 | // during MINSIZEREL builds. 151 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= 152 | 153 | //Flags used by the linker during the creation of shared libraries 154 | // during RELEASE builds. 155 | CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= 156 | 157 | //Flags used by the linker during the creation of shared libraries 158 | // during RELWITHDEBINFO builds. 159 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= 160 | 161 | //If set, runtime paths are not added when installing shared libraries, 162 | // but are added when building. 163 | CMAKE_SKIP_INSTALL_RPATH:BOOL=NO 164 | 165 | //If set, runtime paths are not added when using shared libraries. 166 | CMAKE_SKIP_RPATH:BOOL=NO 167 | 168 | //Flags used by the linker during the creation of static libraries 169 | // during all build types. 170 | CMAKE_STATIC_LINKER_FLAGS:STRING= 171 | 172 | //Flags used by the linker during the creation of static libraries 173 | // during DEBUG builds. 174 | CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= 175 | 176 | //Flags used by the linker during the creation of static libraries 177 | // during MINSIZEREL builds. 178 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= 179 | 180 | //Flags used by the linker during the creation of static libraries 181 | // during RELEASE builds. 182 | CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= 183 | 184 | //Flags used by the linker during the creation of static libraries 185 | // during RELWITHDEBINFO builds. 186 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= 187 | 188 | //Path to a program. 189 | CMAKE_STRIP:FILEPATH=/usr/bin/strip 190 | 191 | //If this value is on, makefiles will be generated without the 192 | // .SILENT directive, and all commands will be echoed to the console 193 | // during the make. This is useful for debugging only. With Visual 194 | // Studio IDE projects all commands are done without /nologo. 195 | CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE 196 | 197 | //The directory containing a CMake configuration file for OpenCV. 198 | OpenCV_DIR:PATH=/opt/ros/kinetic/share/OpenCV-3.3.1-dev 199 | 200 | //Value Computed by CMake 201 | undistort_BINARY_DIR:STATIC=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build 202 | 203 | //Value Computed by CMake 204 | undistort_SOURCE_DIR:STATIC=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort 205 | 206 | 207 | ######################## 208 | # INTERNAL cache entries 209 | ######################## 210 | 211 | //ADVANCED property for variable: CMAKE_AR 212 | CMAKE_AR-ADVANCED:INTERNAL=1 213 | //This is the directory where this CMakeCache.txt was created 214 | CMAKE_CACHEFILE_DIR:INTERNAL=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build 215 | //Major version of cmake used to create the current loaded cache 216 | CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 217 | //Minor version of cmake used to create the current loaded cache 218 | CMAKE_CACHE_MINOR_VERSION:INTERNAL=12 219 | //Patch version of cmake used to create the current loaded cache 220 | CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 221 | //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE 222 | CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 223 | //Path to CMake executable. 224 | CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake 225 | //Path to cpack program executable. 226 | CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack 227 | //Path to ctest program executable. 228 | CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest 229 | //ADVANCED property for variable: CMAKE_CXX_COMPILER 230 | CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 231 | //ADVANCED property for variable: CMAKE_CXX_COMPILER_AR 232 | CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 233 | //ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB 234 | CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 235 | //ADVANCED property for variable: CMAKE_CXX_FLAGS 236 | CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 237 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG 238 | CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 239 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL 240 | CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 241 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE 242 | CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 243 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO 244 | CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 245 | //ADVANCED property for variable: CMAKE_C_COMPILER 246 | CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 247 | //ADVANCED property for variable: CMAKE_C_COMPILER_AR 248 | CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 249 | //ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB 250 | CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 251 | //ADVANCED property for variable: CMAKE_C_FLAGS 252 | CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 253 | //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG 254 | CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 255 | //ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL 256 | CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 257 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE 258 | CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 259 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO 260 | CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 261 | //Path to cache edit program executable. 262 | CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/bin/ccmake 263 | //Executable file format 264 | CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF 265 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS 266 | CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 267 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG 268 | CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 269 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL 270 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 271 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE 272 | CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 273 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO 274 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 275 | //ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS 276 | CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 277 | //Name of external makefile project generator. 278 | CMAKE_EXTRA_GENERATOR:INTERNAL= 279 | //Name of generator. 280 | CMAKE_GENERATOR:INTERNAL=Unix Makefiles 281 | //Generator instance identifier. 282 | CMAKE_GENERATOR_INSTANCE:INTERNAL= 283 | //Name of generator platform. 284 | CMAKE_GENERATOR_PLATFORM:INTERNAL= 285 | //Name of generator toolset. 286 | CMAKE_GENERATOR_TOOLSET:INTERNAL= 287 | //Source directory with the top level CMakeLists.txt file for this 288 | // project 289 | CMAKE_HOME_DIRECTORY:INTERNAL=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort 290 | //Install .so files without execute permission. 291 | CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 292 | //ADVANCED property for variable: CMAKE_LINKER 293 | CMAKE_LINKER-ADVANCED:INTERNAL=1 294 | //ADVANCED property for variable: CMAKE_MAKE_PROGRAM 295 | CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 296 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS 297 | CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 298 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG 299 | CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 300 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL 301 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 302 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE 303 | CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 304 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO 305 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 306 | //ADVANCED property for variable: CMAKE_NM 307 | CMAKE_NM-ADVANCED:INTERNAL=1 308 | //number of local generators 309 | CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 310 | //ADVANCED property for variable: CMAKE_OBJCOPY 311 | CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 312 | //ADVANCED property for variable: CMAKE_OBJDUMP 313 | CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 314 | //Platform information initialized 315 | CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 316 | //ADVANCED property for variable: CMAKE_RANLIB 317 | CMAKE_RANLIB-ADVANCED:INTERNAL=1 318 | //Path to CMake installation. 319 | CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.12 320 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS 321 | CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 322 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG 323 | CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 324 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL 325 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 326 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE 327 | CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 328 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO 329 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 330 | //ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH 331 | CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 332 | //ADVANCED property for variable: CMAKE_SKIP_RPATH 333 | CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 334 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS 335 | CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 336 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG 337 | CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 338 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL 339 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 340 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE 341 | CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 342 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO 343 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 344 | //ADVANCED property for variable: CMAKE_STRIP 345 | CMAKE_STRIP-ADVANCED:INTERNAL=1 346 | //uname command 347 | CMAKE_UNAME:INTERNAL=/bin/uname 348 | //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE 349 | CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 350 | //Details about finding OpenCV 351 | FIND_PACKAGE_MESSAGE_DETAILS_OpenCV:INTERNAL=[/opt/ros/kinetic][v3.3.1()] 352 | 353 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "GNU") 4 | set(CMAKE_C_COMPILER_VERSION "5.4.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Linux") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_SIMULATE_VERSION "") 16 | 17 | 18 | 19 | set(CMAKE_AR "/usr/bin/ar") 20 | set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") 21 | set(CMAKE_RANLIB "/usr/bin/ranlib") 22 | set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") 23 | set(CMAKE_LINKER "/usr/bin/ld") 24 | set(CMAKE_COMPILER_IS_GNUCC 1) 25 | set(CMAKE_C_COMPILER_LOADED 1) 26 | set(CMAKE_C_COMPILER_WORKS TRUE) 27 | set(CMAKE_C_ABI_COMPILED TRUE) 28 | set(CMAKE_COMPILER_IS_MINGW ) 29 | set(CMAKE_COMPILER_IS_CYGWIN ) 30 | if(CMAKE_COMPILER_IS_CYGWIN) 31 | set(CYGWIN 1) 32 | set(UNIX 1) 33 | endif() 34 | 35 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 36 | 37 | if(CMAKE_COMPILER_IS_MINGW) 38 | set(MINGW 1) 39 | endif() 40 | set(CMAKE_C_COMPILER_ID_RUN 1) 41 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 42 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 43 | set(CMAKE_C_LINKER_PREFERENCE 10) 44 | 45 | # Save compiler ABI information. 46 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 47 | set(CMAKE_C_COMPILER_ABI "ELF") 48 | set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 49 | 50 | if(CMAKE_C_SIZEOF_DATA_PTR) 51 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 52 | endif() 53 | 54 | if(CMAKE_C_COMPILER_ABI) 55 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 56 | endif() 57 | 58 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 59 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 60 | endif() 61 | 62 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") 63 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 64 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 65 | endif() 66 | 67 | 68 | 69 | 70 | 71 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") 72 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 73 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 74 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeCXXCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_CXX_COMPILER "/usr/bin/c++") 2 | set(CMAKE_CXX_COMPILER_ARG1 "") 3 | set(CMAKE_CXX_COMPILER_ID "GNU") 4 | set(CMAKE_CXX_COMPILER_VERSION "5.4.0") 5 | set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_CXX_COMPILER_WRAPPER "") 7 | set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") 8 | set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") 9 | set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") 10 | set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") 11 | set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") 12 | set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") 13 | set(CMAKE_CXX20_COMPILE_FEATURES "") 14 | 15 | set(CMAKE_CXX_PLATFORM_ID "Linux") 16 | set(CMAKE_CXX_SIMULATE_ID "") 17 | set(CMAKE_CXX_SIMULATE_VERSION "") 18 | 19 | 20 | 21 | set(CMAKE_AR "/usr/bin/ar") 22 | set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") 23 | set(CMAKE_RANLIB "/usr/bin/ranlib") 24 | set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") 25 | set(CMAKE_LINKER "/usr/bin/ld") 26 | set(CMAKE_COMPILER_IS_GNUCXX 1) 27 | set(CMAKE_CXX_COMPILER_LOADED 1) 28 | set(CMAKE_CXX_COMPILER_WORKS TRUE) 29 | set(CMAKE_CXX_ABI_COMPILED TRUE) 30 | set(CMAKE_COMPILER_IS_MINGW ) 31 | set(CMAKE_COMPILER_IS_CYGWIN ) 32 | if(CMAKE_COMPILER_IS_CYGWIN) 33 | set(CYGWIN 1) 34 | set(UNIX 1) 35 | endif() 36 | 37 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") 38 | 39 | if(CMAKE_COMPILER_IS_MINGW) 40 | set(MINGW 1) 41 | endif() 42 | set(CMAKE_CXX_COMPILER_ID_RUN 1) 43 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) 44 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) 45 | set(CMAKE_CXX_LINKER_PREFERENCE 30) 46 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) 47 | 48 | # Save compiler ABI information. 49 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8") 50 | set(CMAKE_CXX_COMPILER_ABI "ELF") 51 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 52 | 53 | if(CMAKE_CXX_SIZEOF_DATA_PTR) 54 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") 55 | endif() 56 | 57 | if(CMAKE_CXX_COMPILER_ABI) 58 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") 59 | endif() 60 | 61 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE) 62 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 63 | endif() 64 | 65 | set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") 66 | if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) 67 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") 68 | endif() 69 | 70 | 71 | 72 | 73 | 74 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") 75 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 76 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 77 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Linux-4.15.0-34-generic") 2 | set(CMAKE_HOST_SYSTEM_NAME "Linux") 3 | set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-34-generic") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Linux-4.15.0-34-generic") 9 | set(CMAKE_SYSTEM_NAME "Linux") 10 | set(CMAKE_SYSTEM_VERSION "4.15.0-34-generic") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CompilerIdC/a.out -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/CMakeFiles/3.12.3/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/Makefile.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | # The generator used is: 5 | set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") 6 | 7 | # The top level Makefile was generated from the following files: 8 | set(CMAKE_MAKEFILE_DEPENDS 9 | "CMakeCache.txt" 10 | "../CMakeLists.txt" 11 | "CMakeFiles/3.12.3/CMakeCCompiler.cmake" 12 | "CMakeFiles/3.12.3/CMakeCXXCompiler.cmake" 13 | "CMakeFiles/3.12.3/CMakeSystem.cmake" 14 | "CMakeFiles/feature_tests.c" 15 | "CMakeFiles/feature_tests.cxx" 16 | "/opt/ros/kinetic/share/OpenCV-3.3.1-dev/OpenCVConfig-version.cmake" 17 | "/opt/ros/kinetic/share/OpenCV-3.3.1-dev/OpenCVConfig.cmake" 18 | "/opt/ros/kinetic/share/OpenCV-3.3.1-dev/OpenCVModules-release.cmake" 19 | "/opt/ros/kinetic/share/OpenCV-3.3.1-dev/OpenCVModules.cmake" 20 | "/usr/local/share/cmake-3.12/Modules/CMakeCCompiler.cmake.in" 21 | "/usr/local/share/cmake-3.12/Modules/CMakeCCompilerABI.c" 22 | "/usr/local/share/cmake-3.12/Modules/CMakeCInformation.cmake" 23 | "/usr/local/share/cmake-3.12/Modules/CMakeCXXCompiler.cmake.in" 24 | "/usr/local/share/cmake-3.12/Modules/CMakeCXXCompilerABI.cpp" 25 | "/usr/local/share/cmake-3.12/Modules/CMakeCXXInformation.cmake" 26 | "/usr/local/share/cmake-3.12/Modules/CMakeCommonLanguageInclude.cmake" 27 | "/usr/local/share/cmake-3.12/Modules/CMakeCompilerIdDetection.cmake" 28 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineCCompiler.cmake" 29 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineCXXCompiler.cmake" 30 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineCompileFeatures.cmake" 31 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineCompiler.cmake" 32 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineCompilerABI.cmake" 33 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineCompilerId.cmake" 34 | "/usr/local/share/cmake-3.12/Modules/CMakeDetermineSystem.cmake" 35 | "/usr/local/share/cmake-3.12/Modules/CMakeFindBinUtils.cmake" 36 | "/usr/local/share/cmake-3.12/Modules/CMakeGenericSystem.cmake" 37 | "/usr/local/share/cmake-3.12/Modules/CMakeInitializeConfigs.cmake" 38 | "/usr/local/share/cmake-3.12/Modules/CMakeLanguageInformation.cmake" 39 | "/usr/local/share/cmake-3.12/Modules/CMakeParseImplicitLinkInfo.cmake" 40 | "/usr/local/share/cmake-3.12/Modules/CMakeSystem.cmake.in" 41 | "/usr/local/share/cmake-3.12/Modules/CMakeSystemSpecificInformation.cmake" 42 | "/usr/local/share/cmake-3.12/Modules/CMakeSystemSpecificInitialize.cmake" 43 | "/usr/local/share/cmake-3.12/Modules/CMakeTestCCompiler.cmake" 44 | "/usr/local/share/cmake-3.12/Modules/CMakeTestCXXCompiler.cmake" 45 | "/usr/local/share/cmake-3.12/Modules/CMakeTestCompilerCommon.cmake" 46 | "/usr/local/share/cmake-3.12/Modules/CMakeUnixFindMake.cmake" 47 | "/usr/local/share/cmake-3.12/Modules/Compiler/ADSP-DetermineCompiler.cmake" 48 | "/usr/local/share/cmake-3.12/Modules/Compiler/ARMCC-DetermineCompiler.cmake" 49 | "/usr/local/share/cmake-3.12/Modules/Compiler/AppleClang-DetermineCompiler.cmake" 50 | "/usr/local/share/cmake-3.12/Modules/Compiler/Borland-DetermineCompiler.cmake" 51 | "/usr/local/share/cmake-3.12/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" 52 | "/usr/local/share/cmake-3.12/Modules/Compiler/CMakeCommonCompilerMacros.cmake" 53 | "/usr/local/share/cmake-3.12/Modules/Compiler/Clang-DetermineCompiler.cmake" 54 | "/usr/local/share/cmake-3.12/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" 55 | "/usr/local/share/cmake-3.12/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" 56 | "/usr/local/share/cmake-3.12/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" 57 | "/usr/local/share/cmake-3.12/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" 58 | "/usr/local/share/cmake-3.12/Modules/Compiler/Cray-DetermineCompiler.cmake" 59 | "/usr/local/share/cmake-3.12/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" 60 | "/usr/local/share/cmake-3.12/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" 61 | "/usr/local/share/cmake-3.12/Modules/Compiler/GHS-DetermineCompiler.cmake" 62 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-C-DetermineCompiler.cmake" 63 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-C-FeatureTests.cmake" 64 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-C.cmake" 65 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" 66 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-CXX-FeatureTests.cmake" 67 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-CXX.cmake" 68 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU-FindBinUtils.cmake" 69 | "/usr/local/share/cmake-3.12/Modules/Compiler/GNU.cmake" 70 | "/usr/local/share/cmake-3.12/Modules/Compiler/HP-C-DetermineCompiler.cmake" 71 | "/usr/local/share/cmake-3.12/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" 72 | "/usr/local/share/cmake-3.12/Modules/Compiler/IAR-DetermineCompiler.cmake" 73 | "/usr/local/share/cmake-3.12/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" 74 | "/usr/local/share/cmake-3.12/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" 75 | "/usr/local/share/cmake-3.12/Modules/Compiler/Intel-DetermineCompiler.cmake" 76 | "/usr/local/share/cmake-3.12/Modules/Compiler/MIPSpro-DetermineCompiler.cmake" 77 | "/usr/local/share/cmake-3.12/Modules/Compiler/MSVC-DetermineCompiler.cmake" 78 | "/usr/local/share/cmake-3.12/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" 79 | "/usr/local/share/cmake-3.12/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" 80 | "/usr/local/share/cmake-3.12/Modules/Compiler/PGI-DetermineCompiler.cmake" 81 | "/usr/local/share/cmake-3.12/Modules/Compiler/PathScale-DetermineCompiler.cmake" 82 | "/usr/local/share/cmake-3.12/Modules/Compiler/SCO-DetermineCompiler.cmake" 83 | "/usr/local/share/cmake-3.12/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" 84 | "/usr/local/share/cmake-3.12/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" 85 | "/usr/local/share/cmake-3.12/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" 86 | "/usr/local/share/cmake-3.12/Modules/Compiler/TI-DetermineCompiler.cmake" 87 | "/usr/local/share/cmake-3.12/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" 88 | "/usr/local/share/cmake-3.12/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" 89 | "/usr/local/share/cmake-3.12/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" 90 | "/usr/local/share/cmake-3.12/Modules/Compiler/Watcom-DetermineCompiler.cmake" 91 | "/usr/local/share/cmake-3.12/Modules/Compiler/XL-C-DetermineCompiler.cmake" 92 | "/usr/local/share/cmake-3.12/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" 93 | "/usr/local/share/cmake-3.12/Modules/Compiler/zOS-C-DetermineCompiler.cmake" 94 | "/usr/local/share/cmake-3.12/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" 95 | "/usr/local/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake" 96 | "/usr/local/share/cmake-3.12/Modules/FindPackageMessage.cmake" 97 | "/usr/local/share/cmake-3.12/Modules/Internal/FeatureTesting.cmake" 98 | "/usr/local/share/cmake-3.12/Modules/Platform/Linux-Determine-CXX.cmake" 99 | "/usr/local/share/cmake-3.12/Modules/Platform/Linux-GNU-C.cmake" 100 | "/usr/local/share/cmake-3.12/Modules/Platform/Linux-GNU-CXX.cmake" 101 | "/usr/local/share/cmake-3.12/Modules/Platform/Linux-GNU.cmake" 102 | "/usr/local/share/cmake-3.12/Modules/Platform/Linux.cmake" 103 | "/usr/local/share/cmake-3.12/Modules/Platform/UnixPaths.cmake" 104 | ) 105 | 106 | # The corresponding makefile is: 107 | set(CMAKE_MAKEFILE_OUTPUTS 108 | "Makefile" 109 | "CMakeFiles/cmake.check_cache" 110 | ) 111 | 112 | # Byproducts of CMake generate step: 113 | set(CMAKE_MAKEFILE_PRODUCTS 114 | "CMakeFiles/3.12.3/CMakeSystem.cmake" 115 | "CMakeFiles/3.12.3/CMakeCCompiler.cmake" 116 | "CMakeFiles/3.12.3/CMakeCXXCompiler.cmake" 117 | "CMakeFiles/3.12.3/CMakeCCompiler.cmake" 118 | "CMakeFiles/3.12.3/CMakeCXXCompiler.cmake" 119 | "CMakeFiles/CMakeDirectoryInformation.cmake" 120 | ) 121 | 122 | # Dependency information for all targets: 123 | set(CMAKE_DEPEND_INFO_FILES 124 | "CMakeFiles/undistort.dir/DependInfo.cmake" 125 | ) 126 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/Makefile2: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | 7 | .PHONY : default_target 8 | 9 | # The main recursive all target 10 | all: 11 | 12 | .PHONY : all 13 | 14 | # The main recursive preinstall target 15 | preinstall: 16 | 17 | .PHONY : preinstall 18 | 19 | # The main recursive clean target 20 | clean: 21 | 22 | .PHONY : clean 23 | 24 | #============================================================================= 25 | # Special targets provided by cmake. 26 | 27 | # Disable implicit rules so canonical targets will work. 28 | .SUFFIXES: 29 | 30 | 31 | # Remove some rules from gmake that .SUFFIXES does not remove. 32 | SUFFIXES = 33 | 34 | .SUFFIXES: .hpux_make_needs_suffix_list 35 | 36 | 37 | # Suppress display of executed commands. 38 | $(VERBOSE).SILENT: 39 | 40 | 41 | # A target that is always out of date. 42 | cmake_force: 43 | 44 | .PHONY : cmake_force 45 | 46 | #============================================================================= 47 | # Set environment variables for the build. 48 | 49 | # The shell in which to execute make rules. 50 | SHELL = /bin/sh 51 | 52 | # The CMake executable. 53 | CMAKE_COMMAND = /usr/local/bin/cmake 54 | 55 | # The command to remove a file. 56 | RM = /usr/local/bin/cmake -E remove -f 57 | 58 | # Escaping for special characters. 59 | EQUALS = = 60 | 61 | # The top-level source directory on which CMake was run. 62 | CMAKE_SOURCE_DIR = /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort 63 | 64 | # The top-level build directory on which CMake was run. 65 | CMAKE_BINARY_DIR = /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build 66 | 67 | #============================================================================= 68 | # Target rules for target CMakeFiles/undistort.dir 69 | 70 | # All Build rule for target. 71 | CMakeFiles/undistort.dir/all: 72 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/depend 73 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/build 74 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles --progress-num=1,2 "Built target undistort" 75 | .PHONY : CMakeFiles/undistort.dir/all 76 | 77 | # Include target in all. 78 | all: CMakeFiles/undistort.dir/all 79 | 80 | .PHONY : all 81 | 82 | # Build rule for subdir invocation for target. 83 | CMakeFiles/undistort.dir/rule: cmake_check_build_system 84 | $(CMAKE_COMMAND) -E cmake_progress_start /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles 2 85 | $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/undistort.dir/all 86 | $(CMAKE_COMMAND) -E cmake_progress_start /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles 0 87 | .PHONY : CMakeFiles/undistort.dir/rule 88 | 89 | # Convenience name for target. 90 | undistort: CMakeFiles/undistort.dir/rule 91 | 92 | .PHONY : undistort 93 | 94 | # clean rule for target. 95 | CMakeFiles/undistort.dir/clean: 96 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/clean 97 | .PHONY : CMakeFiles/undistort.dir/clean 98 | 99 | # clean rule for target. 100 | clean: CMakeFiles/undistort.dir/clean 101 | 102 | .PHONY : clean 103 | 104 | #============================================================================= 105 | # Special targets to cleanup operation of make. 106 | 107 | # Special rule to run CMake to check the build system integrity. 108 | # No rule that depends on this can have commands that come from listfiles 109 | # because they might be regenerated. 110 | cmake_check_build_system: 111 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 112 | .PHONY : cmake_check_build_system 113 | 114 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles/rebuild_cache.dir 2 | /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles/edit_cache.dir 3 | /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir 4 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/feature_tests.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/CMakeFiles/feature_tests.bin -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/feature_tests.c: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "C_FEATURE:" 4 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "c_function_prototypes\n" 10 | "C_FEATURE:" 11 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "c_restrict\n" 17 | "C_FEATURE:" 18 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "c_static_assert\n" 24 | "C_FEATURE:" 25 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "c_variadic_macros\n" 31 | 32 | }; 33 | 34 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 35 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/feature_tests.cxx: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "CXX_FEATURE:" 4 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "cxx_aggregate_default_initializers\n" 10 | "CXX_FEATURE:" 11 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "cxx_alias_templates\n" 17 | "CXX_FEATURE:" 18 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "cxx_alignas\n" 24 | "CXX_FEATURE:" 25 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "cxx_alignof\n" 31 | "CXX_FEATURE:" 32 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 33 | "1" 34 | #else 35 | "0" 36 | #endif 37 | "cxx_attributes\n" 38 | "CXX_FEATURE:" 39 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 40 | "1" 41 | #else 42 | "0" 43 | #endif 44 | "cxx_attribute_deprecated\n" 45 | "CXX_FEATURE:" 46 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 47 | "1" 48 | #else 49 | "0" 50 | #endif 51 | "cxx_auto_type\n" 52 | "CXX_FEATURE:" 53 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 54 | "1" 55 | #else 56 | "0" 57 | #endif 58 | "cxx_binary_literals\n" 59 | "CXX_FEATURE:" 60 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 61 | "1" 62 | #else 63 | "0" 64 | #endif 65 | "cxx_constexpr\n" 66 | "CXX_FEATURE:" 67 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 68 | "1" 69 | #else 70 | "0" 71 | #endif 72 | "cxx_contextual_conversions\n" 73 | "CXX_FEATURE:" 74 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 75 | "1" 76 | #else 77 | "0" 78 | #endif 79 | "cxx_decltype\n" 80 | "CXX_FEATURE:" 81 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 82 | "1" 83 | #else 84 | "0" 85 | #endif 86 | "cxx_decltype_auto\n" 87 | "CXX_FEATURE:" 88 | #if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L 89 | "1" 90 | #else 91 | "0" 92 | #endif 93 | "cxx_decltype_incomplete_return_types\n" 94 | "CXX_FEATURE:" 95 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 96 | "1" 97 | #else 98 | "0" 99 | #endif 100 | "cxx_default_function_template_args\n" 101 | "CXX_FEATURE:" 102 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 103 | "1" 104 | #else 105 | "0" 106 | #endif 107 | "cxx_defaulted_functions\n" 108 | "CXX_FEATURE:" 109 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 110 | "1" 111 | #else 112 | "0" 113 | #endif 114 | "cxx_defaulted_move_initializers\n" 115 | "CXX_FEATURE:" 116 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 117 | "1" 118 | #else 119 | "0" 120 | #endif 121 | "cxx_delegating_constructors\n" 122 | "CXX_FEATURE:" 123 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 124 | "1" 125 | #else 126 | "0" 127 | #endif 128 | "cxx_deleted_functions\n" 129 | "CXX_FEATURE:" 130 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 131 | "1" 132 | #else 133 | "0" 134 | #endif 135 | "cxx_digit_separators\n" 136 | "CXX_FEATURE:" 137 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 138 | "1" 139 | #else 140 | "0" 141 | #endif 142 | "cxx_enum_forward_declarations\n" 143 | "CXX_FEATURE:" 144 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 145 | "1" 146 | #else 147 | "0" 148 | #endif 149 | "cxx_explicit_conversions\n" 150 | "CXX_FEATURE:" 151 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 152 | "1" 153 | #else 154 | "0" 155 | #endif 156 | "cxx_extended_friend_declarations\n" 157 | "CXX_FEATURE:" 158 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 159 | "1" 160 | #else 161 | "0" 162 | #endif 163 | "cxx_extern_templates\n" 164 | "CXX_FEATURE:" 165 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 166 | "1" 167 | #else 168 | "0" 169 | #endif 170 | "cxx_final\n" 171 | "CXX_FEATURE:" 172 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 173 | "1" 174 | #else 175 | "0" 176 | #endif 177 | "cxx_func_identifier\n" 178 | "CXX_FEATURE:" 179 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 180 | "1" 181 | #else 182 | "0" 183 | #endif 184 | "cxx_generalized_initializers\n" 185 | "CXX_FEATURE:" 186 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 187 | "1" 188 | #else 189 | "0" 190 | #endif 191 | "cxx_generic_lambdas\n" 192 | "CXX_FEATURE:" 193 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 194 | "1" 195 | #else 196 | "0" 197 | #endif 198 | "cxx_inheriting_constructors\n" 199 | "CXX_FEATURE:" 200 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 201 | "1" 202 | #else 203 | "0" 204 | #endif 205 | "cxx_inline_namespaces\n" 206 | "CXX_FEATURE:" 207 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 208 | "1" 209 | #else 210 | "0" 211 | #endif 212 | "cxx_lambdas\n" 213 | "CXX_FEATURE:" 214 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 215 | "1" 216 | #else 217 | "0" 218 | #endif 219 | "cxx_lambda_init_captures\n" 220 | "CXX_FEATURE:" 221 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 222 | "1" 223 | #else 224 | "0" 225 | #endif 226 | "cxx_local_type_template_args\n" 227 | "CXX_FEATURE:" 228 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 229 | "1" 230 | #else 231 | "0" 232 | #endif 233 | "cxx_long_long_type\n" 234 | "CXX_FEATURE:" 235 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 236 | "1" 237 | #else 238 | "0" 239 | #endif 240 | "cxx_noexcept\n" 241 | "CXX_FEATURE:" 242 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 243 | "1" 244 | #else 245 | "0" 246 | #endif 247 | "cxx_nonstatic_member_init\n" 248 | "CXX_FEATURE:" 249 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 250 | "1" 251 | #else 252 | "0" 253 | #endif 254 | "cxx_nullptr\n" 255 | "CXX_FEATURE:" 256 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 257 | "1" 258 | #else 259 | "0" 260 | #endif 261 | "cxx_override\n" 262 | "CXX_FEATURE:" 263 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 264 | "1" 265 | #else 266 | "0" 267 | #endif 268 | "cxx_range_for\n" 269 | "CXX_FEATURE:" 270 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 271 | "1" 272 | #else 273 | "0" 274 | #endif 275 | "cxx_raw_string_literals\n" 276 | "CXX_FEATURE:" 277 | #if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L 278 | "1" 279 | #else 280 | "0" 281 | #endif 282 | "cxx_reference_qualified_functions\n" 283 | "CXX_FEATURE:" 284 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 285 | "1" 286 | #else 287 | "0" 288 | #endif 289 | "cxx_relaxed_constexpr\n" 290 | "CXX_FEATURE:" 291 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 292 | "1" 293 | #else 294 | "0" 295 | #endif 296 | "cxx_return_type_deduction\n" 297 | "CXX_FEATURE:" 298 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 299 | "1" 300 | #else 301 | "0" 302 | #endif 303 | "cxx_right_angle_brackets\n" 304 | "CXX_FEATURE:" 305 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 306 | "1" 307 | #else 308 | "0" 309 | #endif 310 | "cxx_rvalue_references\n" 311 | "CXX_FEATURE:" 312 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 313 | "1" 314 | #else 315 | "0" 316 | #endif 317 | "cxx_sizeof_member\n" 318 | "CXX_FEATURE:" 319 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 320 | "1" 321 | #else 322 | "0" 323 | #endif 324 | "cxx_static_assert\n" 325 | "CXX_FEATURE:" 326 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 327 | "1" 328 | #else 329 | "0" 330 | #endif 331 | "cxx_strong_enums\n" 332 | "CXX_FEATURE:" 333 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus 334 | "1" 335 | #else 336 | "0" 337 | #endif 338 | "cxx_template_template_parameters\n" 339 | "CXX_FEATURE:" 340 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 341 | "1" 342 | #else 343 | "0" 344 | #endif 345 | "cxx_thread_local\n" 346 | "CXX_FEATURE:" 347 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 348 | "1" 349 | #else 350 | "0" 351 | #endif 352 | "cxx_trailing_return_types\n" 353 | "CXX_FEATURE:" 354 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 355 | "1" 356 | #else 357 | "0" 358 | #endif 359 | "cxx_unicode_literals\n" 360 | "CXX_FEATURE:" 361 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 362 | "1" 363 | #else 364 | "0" 365 | #endif 366 | "cxx_uniform_initialization\n" 367 | "CXX_FEATURE:" 368 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 369 | "1" 370 | #else 371 | "0" 372 | #endif 373 | "cxx_unrestricted_unions\n" 374 | "CXX_FEATURE:" 375 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 376 | "1" 377 | #else 378 | "0" 379 | #endif 380 | "cxx_user_literals\n" 381 | "CXX_FEATURE:" 382 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 383 | "1" 384 | #else 385 | "0" 386 | #endif 387 | "cxx_variable_templates\n" 388 | "CXX_FEATURE:" 389 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 390 | "1" 391 | #else 392 | "0" 393 | #endif 394 | "cxx_variadic_macros\n" 395 | "CXX_FEATURE:" 396 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 397 | "1" 398 | #else 399 | "0" 400 | #endif 401 | "cxx_variadic_templates\n" 402 | 403 | }; 404 | 405 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 406 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 2 2 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "CXX" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_CXX 7 | "/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/undistort_image.cpp" "/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/undistort_image.cpp.o" 8 | ) 9 | set(CMAKE_CXX_COMPILER_ID "GNU") 10 | 11 | # The include file search paths: 12 | set(CMAKE_CXX_TARGET_INCLUDE_PATH 13 | "/opt/ros/kinetic/include/opencv-3.3.1-dev" 14 | "/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv" 15 | ) 16 | 17 | # Targets to which this target links. 18 | set(CMAKE_TARGET_LINKED_INFO_FILES 19 | ) 20 | 21 | # Fortran module output directory. 22 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 23 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/build.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | # Delete rule output on recipe failure. 5 | .DELETE_ON_ERROR: 6 | 7 | 8 | #============================================================================= 9 | # Special targets provided by cmake. 10 | 11 | # Disable implicit rules so canonical targets will work. 12 | .SUFFIXES: 13 | 14 | 15 | # Remove some rules from gmake that .SUFFIXES does not remove. 16 | SUFFIXES = 17 | 18 | .SUFFIXES: .hpux_make_needs_suffix_list 19 | 20 | 21 | # Suppress display of executed commands. 22 | $(VERBOSE).SILENT: 23 | 24 | 25 | # A target that is always out of date. 26 | cmake_force: 27 | 28 | .PHONY : cmake_force 29 | 30 | #============================================================================= 31 | # Set environment variables for the build. 32 | 33 | # The shell in which to execute make rules. 34 | SHELL = /bin/sh 35 | 36 | # The CMake executable. 37 | CMAKE_COMMAND = /usr/local/bin/cmake 38 | 39 | # The command to remove a file. 40 | RM = /usr/local/bin/cmake -E remove -f 41 | 42 | # Escaping for special characters. 43 | EQUALS = = 44 | 45 | # The top-level source directory on which CMake was run. 46 | CMAKE_SOURCE_DIR = /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort 47 | 48 | # The top-level build directory on which CMake was run. 49 | CMAKE_BINARY_DIR = /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build 50 | 51 | # Include any dependencies generated for this target. 52 | include CMakeFiles/undistort.dir/depend.make 53 | 54 | # Include the progress variables for this target. 55 | include CMakeFiles/undistort.dir/progress.make 56 | 57 | # Include the compile flags for this target's objects. 58 | include CMakeFiles/undistort.dir/flags.make 59 | 60 | CMakeFiles/undistort.dir/undistort_image.cpp.o: CMakeFiles/undistort.dir/flags.make 61 | CMakeFiles/undistort.dir/undistort_image.cpp.o: ../undistort_image.cpp 62 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/undistort.dir/undistort_image.cpp.o" 63 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/undistort.dir/undistort_image.cpp.o -c /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/undistort_image.cpp 64 | 65 | CMakeFiles/undistort.dir/undistort_image.cpp.i: cmake_force 66 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/undistort.dir/undistort_image.cpp.i" 67 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/undistort_image.cpp > CMakeFiles/undistort.dir/undistort_image.cpp.i 68 | 69 | CMakeFiles/undistort.dir/undistort_image.cpp.s: cmake_force 70 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/undistort.dir/undistort_image.cpp.s" 71 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/undistort_image.cpp -o CMakeFiles/undistort.dir/undistort_image.cpp.s 72 | 73 | # Object files for target undistort 74 | undistort_OBJECTS = \ 75 | "CMakeFiles/undistort.dir/undistort_image.cpp.o" 76 | 77 | # External object files for target undistort 78 | undistort_EXTERNAL_OBJECTS = 79 | 80 | undistort: CMakeFiles/undistort.dir/undistort_image.cpp.o 81 | undistort: CMakeFiles/undistort.dir/build.make 82 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_stitching3.so.3.3.1 83 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_superres3.so.3.3.1 84 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_videostab3.so.3.3.1 85 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_aruco3.so.3.3.1 86 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_bgsegm3.so.3.3.1 87 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_bioinspired3.so.3.3.1 88 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_ccalib3.so.3.3.1 89 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_cvv3.so.3.3.1 90 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_dpm3.so.3.3.1 91 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_face3.so.3.3.1 92 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_fuzzy3.so.3.3.1 93 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_hdf3.so.3.3.1 94 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_img_hash3.so.3.3.1 95 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_line_descriptor3.so.3.3.1 96 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_optflow3.so.3.3.1 97 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_reg3.so.3.3.1 98 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_rgbd3.so.3.3.1 99 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_saliency3.so.3.3.1 100 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_stereo3.so.3.3.1 101 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_structured_light3.so.3.3.1 102 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_surface_matching3.so.3.3.1 103 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_tracking3.so.3.3.1 104 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_xfeatures2d3.so.3.3.1 105 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_ximgproc3.so.3.3.1 106 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_xobjdetect3.so.3.3.1 107 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_xphoto3.so.3.3.1 108 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_shape3.so.3.3.1 109 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_photo3.so.3.3.1 110 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_datasets3.so.3.3.1 111 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_plot3.so.3.3.1 112 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_text3.so.3.3.1 113 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_dnn3.so.3.3.1 114 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_ml3.so.3.3.1 115 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_video3.so.3.3.1 116 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_calib3d3.so.3.3.1 117 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_features2d3.so.3.3.1 118 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_highgui3.so.3.3.1 119 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_videoio3.so.3.3.1 120 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_viz3.so.3.3.1 121 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_phase_unwrapping3.so.3.3.1 122 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_flann3.so.3.3.1 123 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1 124 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_objdetect3.so.3.3.1 125 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgproc3.so.3.3.1 126 | undistort: /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_core3.so.3.3.1 127 | undistort: CMakeFiles/undistort.dir/link.txt 128 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable undistort" 129 | $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/undistort.dir/link.txt --verbose=$(VERBOSE) 130 | 131 | # Rule to build all files generated by this target. 132 | CMakeFiles/undistort.dir/build: undistort 133 | 134 | .PHONY : CMakeFiles/undistort.dir/build 135 | 136 | CMakeFiles/undistort.dir/clean: 137 | $(CMAKE_COMMAND) -P CMakeFiles/undistort.dir/cmake_clean.cmake 138 | .PHONY : CMakeFiles/undistort.dir/clean 139 | 140 | CMakeFiles/undistort.dir/depend: 141 | cd /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/DependInfo.cmake --color=$(COLOR) 142 | .PHONY : CMakeFiles/undistort.dir/depend 143 | 144 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/undistort.dir/undistort_image.cpp.o" 3 | "undistort.pdb" 4 | "undistort" 5 | ) 6 | 7 | # Per-language clean rules from dependency scanning. 8 | foreach(lang CXX) 9 | include(CMakeFiles/undistort.dir/cmake_clean_${lang}.cmake OPTIONAL) 10 | endforeach() 11 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/depend.internal: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | CMakeFiles/undistort.dir/undistort_image.cpp.o 5 | /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/undistort_image.cpp 6 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv/cxcore.h 7 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/calib3d.hpp 8 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/calib3d/calib3d_c.h 9 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp 10 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/affine.hpp 11 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/base.hpp 12 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/bufferpool.hpp 13 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/core_c.h 14 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cuda.hpp 15 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cuda.inl.hpp 16 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cuda_types.hpp 17 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cv_cpu_dispatch.h 18 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cv_cpu_helper.h 19 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cvdef.h 20 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cvstd.hpp 21 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cvstd.inl.hpp 22 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/fast_math.hpp 23 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/hal/interface.h 24 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp 25 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp 26 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/matx.hpp 27 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/neon_utils.hpp 28 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/operations.hpp 29 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/optim.hpp 30 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/ovx.hpp 31 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/persistence.hpp 32 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/ptr.inl.hpp 33 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/saturate.hpp 34 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/traits.hpp 35 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/types.hpp 36 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/types_c.h 37 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/utility.hpp 38 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/version.hpp 39 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/vsx_utils.hpp 40 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/features2d.hpp 41 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann.hpp 42 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/all_indices.h 43 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/allocator.h 44 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/any.h 45 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/autotuned_index.h 46 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/composite_index.h 47 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/config.h 48 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/defines.h 49 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/dist.h 50 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/dynamic_bitset.h 51 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/flann_base.hpp 52 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/general.h 53 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/ground_truth.h 54 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/heap.h 55 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/hierarchical_clustering_index.h 56 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/index_testing.h 57 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/kdtree_index.h 58 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/kdtree_single_index.h 59 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/kmeans_index.h 60 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/linear_index.h 61 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/logger.h 62 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/lsh_index.h 63 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/lsh_table.h 64 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/matrix.h 65 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/miniflann.hpp 66 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/nn_index.h 67 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/params.h 68 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/random.h 69 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/result_set.h 70 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/sampling.h 71 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/saving.h 72 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/timer.h 73 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp 74 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui_c.h 75 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgcodecs.hpp 76 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgcodecs/imgcodecs_c.h 77 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgproc.hpp 78 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgproc/imgproc_c.h 79 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgproc/types_c.h 80 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/ml.hpp 81 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/objdetect.hpp 82 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/objdetect/detection_based_tracker.hpp 83 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/objdetect/objdetect_c.h 84 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/opencv.hpp 85 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/opencv_modules.hpp 86 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/photo.hpp 87 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/photo/photo_c.h 88 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape.hpp 89 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/emdL1.hpp 90 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/hist_cost.hpp 91 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/shape_distance.hpp 92 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/shape_transformer.hpp 93 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching.hpp 94 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/blenders.hpp 95 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/camera.hpp 96 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/exposure_compensate.hpp 97 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/matchers.hpp 98 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/motion_estimators.hpp 99 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/seam_finders.hpp 100 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/util.hpp 101 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/util_inl.hpp 102 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/warpers.hpp 103 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/warpers_inl.hpp 104 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/warpers.hpp 105 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/superres.hpp 106 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/superres/optical_flow.hpp 107 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video.hpp 108 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video/background_segm.hpp 109 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video/tracking.hpp 110 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video/tracking_c.h 111 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videoio.hpp 112 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videoio/videoio_c.h 113 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab.hpp 114 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/deblurring.hpp 115 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/fast_marching.hpp 116 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/fast_marching_inl.hpp 117 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/frame_source.hpp 118 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/global_motion.hpp 119 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/inpainting.hpp 120 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/log.hpp 121 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/motion_core.hpp 122 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/motion_stabilizing.hpp 123 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/optical_flow.hpp 124 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/outlier_rejection.hpp 125 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/ring_buffer.hpp 126 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/stabilizer.hpp 127 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/wobble_suppression.hpp 128 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz.hpp 129 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/types.hpp 130 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/viz3d.hpp 131 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/vizcore.hpp 132 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/widgets.hpp 133 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/xfeatures2d.hpp 134 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/xfeatures2d/cuda.hpp 135 | /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/xfeatures2d/nonfree.hpp 136 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/depend.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | CMakeFiles/undistort.dir/undistort_image.cpp.o: ../undistort_image.cpp 5 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv/cxcore.h 6 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/calib3d.hpp 7 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/calib3d/calib3d_c.h 8 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp 9 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/affine.hpp 10 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/base.hpp 11 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/bufferpool.hpp 12 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/core_c.h 13 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cuda.hpp 14 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cuda.inl.hpp 15 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cuda_types.hpp 16 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cv_cpu_dispatch.h 17 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cv_cpu_helper.h 18 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cvdef.h 19 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cvstd.hpp 20 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/cvstd.inl.hpp 21 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/fast_math.hpp 22 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/hal/interface.h 23 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp 24 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp 25 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/matx.hpp 26 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/neon_utils.hpp 27 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/operations.hpp 28 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/optim.hpp 29 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/ovx.hpp 30 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/persistence.hpp 31 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/ptr.inl.hpp 32 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/saturate.hpp 33 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/traits.hpp 34 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/types.hpp 35 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/types_c.h 36 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/utility.hpp 37 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/version.hpp 38 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/vsx_utils.hpp 39 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/features2d.hpp 40 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann.hpp 41 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/all_indices.h 42 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/allocator.h 43 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/any.h 44 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/autotuned_index.h 45 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/composite_index.h 46 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/config.h 47 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/defines.h 48 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/dist.h 49 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/dynamic_bitset.h 50 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/flann_base.hpp 51 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/general.h 52 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/ground_truth.h 53 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/heap.h 54 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/hierarchical_clustering_index.h 55 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/index_testing.h 56 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/kdtree_index.h 57 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/kdtree_single_index.h 58 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/kmeans_index.h 59 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/linear_index.h 60 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/logger.h 61 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/lsh_index.h 62 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/lsh_table.h 63 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/matrix.h 64 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/miniflann.hpp 65 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/nn_index.h 66 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/params.h 67 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/random.h 68 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/result_set.h 69 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/sampling.h 70 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/saving.h 71 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/flann/timer.h 72 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp 73 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui_c.h 74 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgcodecs.hpp 75 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgcodecs/imgcodecs_c.h 76 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgproc.hpp 77 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgproc/imgproc_c.h 78 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/imgproc/types_c.h 79 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/ml.hpp 80 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/objdetect.hpp 81 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/objdetect/detection_based_tracker.hpp 82 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/objdetect/objdetect_c.h 83 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/opencv.hpp 84 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/opencv_modules.hpp 85 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/photo.hpp 86 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/photo/photo_c.h 87 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape.hpp 88 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/emdL1.hpp 89 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/hist_cost.hpp 90 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/shape_distance.hpp 91 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/shape/shape_transformer.hpp 92 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching.hpp 93 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/blenders.hpp 94 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/camera.hpp 95 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/exposure_compensate.hpp 96 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/matchers.hpp 97 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/motion_estimators.hpp 98 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/seam_finders.hpp 99 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/util.hpp 100 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/util_inl.hpp 101 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/warpers.hpp 102 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/detail/warpers_inl.hpp 103 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/stitching/warpers.hpp 104 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/superres.hpp 105 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/superres/optical_flow.hpp 106 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video.hpp 107 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video/background_segm.hpp 108 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video/tracking.hpp 109 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/video/tracking_c.h 110 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videoio.hpp 111 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videoio/videoio_c.h 112 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab.hpp 113 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/deblurring.hpp 114 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/fast_marching.hpp 115 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/fast_marching_inl.hpp 116 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/frame_source.hpp 117 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/global_motion.hpp 118 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/inpainting.hpp 119 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/log.hpp 120 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/motion_core.hpp 121 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/motion_stabilizing.hpp 122 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/optical_flow.hpp 123 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/outlier_rejection.hpp 124 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/ring_buffer.hpp 125 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/stabilizer.hpp 126 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/videostab/wobble_suppression.hpp 127 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz.hpp 128 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/types.hpp 129 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/viz3d.hpp 130 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/vizcore.hpp 131 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/viz/widgets.hpp 132 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/xfeatures2d.hpp 133 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/xfeatures2d/cuda.hpp 134 | CMakeFiles/undistort.dir/undistort_image.cpp.o: /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/xfeatures2d/nonfree.hpp 135 | 136 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | # compile CXX with /usr/bin/c++ 5 | CXX_FLAGS = -std=c++11 6 | 7 | CXX_DEFINES = 8 | 9 | CXX_INCLUDES = -isystem /opt/ros/kinetic/include/opencv-3.3.1-dev -isystem /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv 10 | 11 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/c++ -std=c++11 -rdynamic CMakeFiles/undistort.dir/undistort_image.cpp.o -o undistort -Wl,-rpath,/opt/ros/kinetic/lib/x86_64-linux-gnu /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_stitching3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_superres3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_videostab3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_aruco3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_bgsegm3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_bioinspired3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_ccalib3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_cvv3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_dpm3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_face3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_fuzzy3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_hdf3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_img_hash3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_line_descriptor3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_optflow3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_reg3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_rgbd3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_saliency3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_stereo3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_structured_light3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_surface_matching3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_tracking3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_xfeatures2d3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_ximgproc3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_xobjdetect3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_xphoto3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_shape3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_photo3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_datasets3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_plot3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_text3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_dnn3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_ml3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_video3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_calib3d3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_features2d3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_highgui3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_videoio3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_viz3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_phase_unwrapping3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_flann3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_objdetect3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgproc3.so.3.3.1 /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_core3.so.3.3.1 2 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 1 2 | CMAKE_PROGRESS_2 = 2 3 | 4 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/undistort_image.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/CMakeFiles/undistort.dir/undistort_image.cpp.o -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/Makefile: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.12 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | 7 | .PHONY : default_target 8 | 9 | # Allow only one "make -f Makefile2" at a time, but pass parallelism. 10 | .NOTPARALLEL: 11 | 12 | 13 | #============================================================================= 14 | # Special targets provided by cmake. 15 | 16 | # Disable implicit rules so canonical targets will work. 17 | .SUFFIXES: 18 | 19 | 20 | # Remove some rules from gmake that .SUFFIXES does not remove. 21 | SUFFIXES = 22 | 23 | .SUFFIXES: .hpux_make_needs_suffix_list 24 | 25 | 26 | # Suppress display of executed commands. 27 | $(VERBOSE).SILENT: 28 | 29 | 30 | # A target that is always out of date. 31 | cmake_force: 32 | 33 | .PHONY : cmake_force 34 | 35 | #============================================================================= 36 | # Set environment variables for the build. 37 | 38 | # The shell in which to execute make rules. 39 | SHELL = /bin/sh 40 | 41 | # The CMake executable. 42 | CMAKE_COMMAND = /usr/local/bin/cmake 43 | 44 | # The command to remove a file. 45 | RM = /usr/local/bin/cmake -E remove -f 46 | 47 | # Escaping for special characters. 48 | EQUALS = = 49 | 50 | # The top-level source directory on which CMake was run. 51 | CMAKE_SOURCE_DIR = /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort 52 | 53 | # The top-level build directory on which CMake was run. 54 | CMAKE_BINARY_DIR = /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build 55 | 56 | #============================================================================= 57 | # Targets provided globally by CMake. 58 | 59 | # Special rule for the target rebuild_cache 60 | rebuild_cache: 61 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." 62 | /usr/local/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) 63 | .PHONY : rebuild_cache 64 | 65 | # Special rule for the target rebuild_cache 66 | rebuild_cache/fast: rebuild_cache 67 | 68 | .PHONY : rebuild_cache/fast 69 | 70 | # Special rule for the target edit_cache 71 | edit_cache: 72 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." 73 | /usr/local/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) 74 | .PHONY : edit_cache 75 | 76 | # Special rule for the target edit_cache 77 | edit_cache/fast: edit_cache 78 | 79 | .PHONY : edit_cache/fast 80 | 81 | # The main all target 82 | all: cmake_check_build_system 83 | $(CMAKE_COMMAND) -E cmake_progress_start /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles/progress.marks 84 | $(MAKE) -f CMakeFiles/Makefile2 all 85 | $(CMAKE_COMMAND) -E cmake_progress_start /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/CMakeFiles 0 86 | .PHONY : all 87 | 88 | # The main clean target 89 | clean: 90 | $(MAKE) -f CMakeFiles/Makefile2 clean 91 | .PHONY : clean 92 | 93 | # The main clean target 94 | clean/fast: clean 95 | 96 | .PHONY : clean/fast 97 | 98 | # Prepare targets for installation. 99 | preinstall: all 100 | $(MAKE) -f CMakeFiles/Makefile2 preinstall 101 | .PHONY : preinstall 102 | 103 | # Prepare targets for installation. 104 | preinstall/fast: 105 | $(MAKE) -f CMakeFiles/Makefile2 preinstall 106 | .PHONY : preinstall/fast 107 | 108 | # clear depends 109 | depend: 110 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 111 | .PHONY : depend 112 | 113 | #============================================================================= 114 | # Target rules for targets named undistort 115 | 116 | # Build rule for target. 117 | undistort: cmake_check_build_system 118 | $(MAKE) -f CMakeFiles/Makefile2 undistort 119 | .PHONY : undistort 120 | 121 | # fast build rule for target. 122 | undistort/fast: 123 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/build 124 | .PHONY : undistort/fast 125 | 126 | undistort_image.o: undistort_image.cpp.o 127 | 128 | .PHONY : undistort_image.o 129 | 130 | # target to build an object file 131 | undistort_image.cpp.o: 132 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/undistort_image.cpp.o 133 | .PHONY : undistort_image.cpp.o 134 | 135 | undistort_image.i: undistort_image.cpp.i 136 | 137 | .PHONY : undistort_image.i 138 | 139 | # target to preprocess a source file 140 | undistort_image.cpp.i: 141 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/undistort_image.cpp.i 142 | .PHONY : undistort_image.cpp.i 143 | 144 | undistort_image.s: undistort_image.cpp.s 145 | 146 | .PHONY : undistort_image.s 147 | 148 | # target to generate assembly for a file 149 | undistort_image.cpp.s: 150 | $(MAKE) -f CMakeFiles/undistort.dir/build.make CMakeFiles/undistort.dir/undistort_image.cpp.s 151 | .PHONY : undistort_image.cpp.s 152 | 153 | # Help Target 154 | help: 155 | @echo "The following are some of the valid targets for this Makefile:" 156 | @echo "... all (the default if no target is provided)" 157 | @echo "... clean" 158 | @echo "... depend" 159 | @echo "... rebuild_cache" 160 | @echo "... edit_cache" 161 | @echo "... undistort" 162 | @echo "... undistort_image.o" 163 | @echo "... undistort_image.i" 164 | @echo "... undistort_image.s" 165 | .PHONY : help 166 | 167 | 168 | 169 | #============================================================================= 170 | # Special targets to cleanup operation of make. 171 | 172 | # Special rule to run CMake to check the build system integrity. 173 | # No rule that depends on this can have commands that come from listfiles 174 | # because they might be regenerated. 175 | cmake_check_build_system: 176 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 177 | .PHONY : cmake_check_build_system 178 | 179 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "/usr/local") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Install shared libraries without execute permission? 31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | set(CMAKE_INSTALL_SO_NO_EXE "1") 33 | endif() 34 | 35 | # Is this installation the result of a crosscompile? 36 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 37 | set(CMAKE_CROSSCOMPILING "FALSE") 38 | endif() 39 | 40 | if(CMAKE_INSTALL_COMPONENT) 41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") 42 | else() 43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") 44 | endif() 45 | 46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT 47 | "${CMAKE_INSTALL_MANIFEST_FILES}") 48 | file(WRITE "/home/yxl/github/Visual-Localization-Percessing/vslam_fourteen_lectures/undistort/build/${CMAKE_INSTALL_MANIFEST}" 49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}") 50 | -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/build/undistort: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/build/undistort -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/result.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XLMaverick/Visual-Localization-Percessing/34549bcd1ec11d87b8466d3c264706a325ffdd11/vslam_fourteen_lectures/undistort/test.png -------------------------------------------------------------------------------- /vslam_fourteen_lectures/undistort/undistort_image.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | string image_file = "../test.png"; // 请确保路径正确 7 | 8 | int main(int argc, char **argv) { 9 | 10 | // 本程序需要你自己实现去畸变部分的代码。尽管我们可以调用OpenCV的去畸变,但自己实现一遍有助于理解。 11 | // 畸变参数 12 | double k1 = -0.28340811, k2 = 0.07395907, p1 = 0.00019359, p2 = 1.76187114e-05; 13 | // 内参 14 | double fx = 458.654, fy = 457.296, cx = 367.215, cy = 248.375; 15 | 16 | cv::Mat image = cv::imread(image_file,0); // 图像是灰度图,CV_8UC1 17 | int rows = image.rows, cols = image.cols; 18 | cv::Mat image_undistort = cv::Mat(rows, cols, CV_8UC1); // 去畸变以后的图 19 | 20 | // 计算去畸变后图像的内容 21 | for (int v = 0; v < rows; v++) 22 | { 23 | for (int u = 0; u < cols; u++) 24 | { 25 | 26 | double u_distorted = 0, v_distorted = 0; 27 | // TODO 按照公式,计算点(u,v)对应到畸变图像中的坐标(u_distorted, v_distorted) (~6 lines) 28 | // start your code here 29 | double x = (u-cx)/fx; 30 | double y = (v-cy)/fy; 31 | 32 | double r2 = x*x+y*y; 33 | double r4 = r2*r2; 34 | 35 | double x_distorted = x*(1+k1*r2+k2*r4)+2*p1*x*y+p2*(r2+2*x*x); 36 | double y_distorted = y*(1+k1*r2+k2*r4)+p1*(r2+2*y*y)+2*p2*x*y; 37 | 38 | u_distorted = fx*x_distorted+cx; 39 | v_distorted = fy*y_distorted+cy; 40 | 41 | // end your code here 42 | 43 | // 赋值 (最近邻插值) 44 | if (u_distorted >= 0 && v_distorted >= 0 && u_distorted < cols && v_distorted < rows) 45 | { 46 | image_undistort.at(v, u) = image.at((int) v_distorted, (int) u_distorted); 47 | } 48 | else 49 | { 50 | image_undistort.at(v, u) = 0; 51 | } 52 | } 53 | } 54 | 55 | // 画图去畸变后图像 56 | cv::imwrite("../result.png", image_undistort); 57 | cv::imshow("image undistorted", image_undistort); 58 | cv::waitKey(); 59 | 60 | return 0; 61 | } 62 | --------------------------------------------------------------------------------