#if 0 void xyp2ipmp(cv::Mat& xyp, cv::Mat& ipmp, cv::Mat& xylim, Size& sz){ //xylimist_[0]-latteral/xylimist_[1]-longitudinal... //ipmp-row0-cols-latteral/ipmp-row1-rows-longitudinal... , xmax = , ymin = , ymax = ; minMaxLoc(xylim.row(), &xmin, &xmax); minMaxLoc(xylim.row(), &ymin, &ymax); double stepcol = (xmax - xmin) / sz.width; double steprow = (ymax - ymin) / sz.height; cv::Mat tempx = cv::Mat::ones(, xyp.cols, CV_64FC1) * xmin; cv::Mat tempy = cv::Mat::ones(, xyp.cols, CV_64FC1) * ymax; ipmp = cv::Mat::zeros(, xyp.cols, CV_64FC1); ipmp.rowRange(, ) = ( xyp.rowRange(, ) - tempx ) / stepcol; ipmp.rowRange(, ) = ( tempy - xyp.rowRange(, ) ) / steprow; ; i < xyp.cols; i++ ) { , i); if( y > ymax){ ipmp.at<, i) = ymax; } } } #endif
#if 0 //IPM-parameters... ;//left ;//top-greater than 320... ;//right... ;//bottom... ] = { left_upper_x, right_down_x, left_upper_x, right_down_x, left_upper_y, left_upper_y, right_down_y, right_down_y }; cv::Mat uvlmt = cv::Mat(, , CV_64FC1, uvlimist); //I2G cv::Mat xylimit; imagetoground(uvlmt, xylimit, h, roll, pitch, camera_param_KK); //G2I cv::Mat uvgd; cv::Size sz = cv::Size(PROB_W, PROB_H);//Size(srcimage.cols, srcimage.rows) groundtoimage(xylimit, uvgd, sz, h, roll, pitch, camera_param_KK ); #endif
#if 1 //IPM... cv::Mat outimage, coord; src2ipm( prob, uvgd, outimage, coord, sz, h, roll, pitch, camera_param_KK ); outimage.convertTo(outimage, CV_8UC1); cv::Mat ipm3 = cv::Mat::zeros(PROB_H, PROB_W, CV_8UC3); cv::cvtColor(outimage, ipm3, COLOR_GRAY2BGR); // //cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1); cv::Mat uvp = cv::Mat::zeros(, probp.size(), CV_64FC1);//data-type... ; i <probp.size(); i++ ) { uvp.at<, i) = probp[i].x;//cols-width. uvp.at<, i) = probp[i].y;//rows-height. //std::cout << uvp.at<double>(0, i) << "-----" << probp[i].x <<std::endl; //std::cout << uvp.at<double>(1, i) << "-----" << probp[i].y <<std::endl; } cv::Mat ipmps, xyp; //std::cout << "uvp:" << uvp << std::endl; imagetoground(uvp, xyp, h, roll, pitch, camera_param_KK); xyp2ipmp(xyp, ipmps, xylimit, sz); ipmps.convertTo(ipmps, CV_32SC1); ; i <probp.size(); i++ ) { cv::Point ipmp; ipmp.x = ipmps.at<, i); ipmp.y = ipmps.at<, i); )//-barrier { cv::circle(ipm3, ipmp, , cv::Scalar(, , ), -); // //cv::putText(orig, std::to_string(i), pt, CV_FONT_NORMAL, 0.1, cv::Scalar(255, 255, 255)); } )//-undifined { cv::circle(ipm3, ipmp, , cv::Scalar(, , ), -); // //cv::putText(orig, std::to_string(i), pt, CV_FONT_NORMAL, 0.1, cv::Scalar(255, 255, 255)); } } cv::imshow("ipmp", ipm3); cv::waitKey();//unit-ms. sprintf(output_path,"./ipmp/00000%05d.png",cnt); cv::imwrite(output_path, ipm3); #endif
end...