diff --git a/Prj-Linux/lpr/src/FineMapping.cpp b/Prj-Linux/lpr/src/FineMapping.cpp index 42e4b32..e1c78c0 100644 --- a/Prj-Linux/lpr/src/FineMapping.cpp +++ b/Prj-Linux/lpr/src/FineMapping.cpp @@ -65,33 +65,21 @@ namespace pr{ } cv::Mat FineMapping::FineMappingVertical(cv::Mat InputProposal,int sliceNum,int upper,int lower,int windows_size){ - - cv::Mat PreInputProposal; cv::Mat proposal; - cv::resize(InputProposal,PreInputProposal,cv::Size(FINEMAPPING_W,FINEMAPPING_H)); -// cv::imwrite("res/cache/finemapping.jpg",PreInputProposal); - if(InputProposal.channels() == 3) cv::cvtColor(PreInputProposal,proposal,cv::COLOR_BGR2GRAY); else PreInputProposal.copyTo(proposal); - -// proposal = PreInputProposal; - // this will improve some sen cv::Mat kernal = cv::getStructuringElement(cv::MORPH_ELLIPSE,cv::Size(1,3)); -// cv::erode(proposal,proposal,kernal); - - float diff = static_cast(upper-lower); diff/=static_cast(sliceNum-1); cv::Mat binary_adaptive; std::vector line_upper; std::vector line_lower; int contours_nums=0; - for(int i = 0 ; i < sliceNum ; i++) { std::vector > contours; @@ -116,8 +104,6 @@ namespace pr{ } } } - - if(contours_nums<41) { cv::bitwise_not(InputProposal,InputProposal); @@ -130,14 +116,11 @@ namespace pr{ else proposal = bak; int contours_nums=0; - for(int i = 0 ; i < sliceNum ; i++) { std::vector > contours; float k =lower + i*diff; cv::adaptiveThreshold(proposal,binary_adaptive,255,cv::ADAPTIVE_THRESH_MEAN_C,cv::THRESH_BINARY,windows_size,k); -// cv::imshow("image",binary_adaptive); -// cv::waitKey(0); cv::Mat draw; binary_adaptive.copyTo(draw); cv::findContours(binary_adaptive,contours,cv::RETR_EXTERNAL,cv::CHAIN_APPROX_SIMPLE); @@ -158,16 +141,9 @@ namespace pr{ } } } -// std:: cout<<"contours_nums "< A; std::pair B; A = FitLineRansac(line_upper, -1); @@ -178,10 +154,6 @@ namespace pr{ int rightyA = B.second; int cols = rgb.cols; int rows = rgb.rows; -// pts_map1 = np.float32([[cols - 1, rightyA], [0, leftyA],[cols - 1, rightyB], [0, leftyB]]) -// pts_map2 = np.float32([[136,36],[0,36],[136,0],[0,0]]) -// mat = cv2.getPerspectiveTransform(pts_map1,pts_map2) -// image = cv2.warpPerspective(rgb,mat,(136,36),flags=cv2.INTER_CUBIC) std::vector corners(4); corners[0] = cv::Point2f(cols - 1, rightyA); corners[1] = cv::Point2f(0, leftyA); @@ -196,10 +168,7 @@ namespace pr{ cv::Mat quad = cv::Mat::zeros(36, 136, CV_8UC3); cv::warpPerspective(rgb, quad, transform, quad.size()); return quad; - } - - }