【发布时间】:2013-07-25 07:55:40
【问题描述】:
我在图像上运行 cv::warpPerspective() 函数,以及如何获取我在源图像中得到的结果图像的一些点的位置,这里我走了多远:
int main (){
cv::Point2f srcQuad[4],dstQuad[4];
cv::Mat warpMatrix;
cv::Mat src, dst,src2;
src = cv::imread("card.jpg",1);
srcQuad[0].x = 0; //src Top left
srcQuad[0].y = 0;
srcQuad[1].x = src.cols - 1; //src Top right
srcQuad[1].y = 0;
srcQuad[2].x = 0; //src Bottom left
srcQuad[2].y = src.rows - 1;
srcQuad[3].x = src.cols -1; //src Bot right
srcQuad[3].y = src.rows - 1;
dstQuad[0].x = src.cols*0.05; //dst Top left
dstQuad[0].y = src.rows*0.33;
dstQuad[1].x = src.cols*0.9; //dst Top right
dstQuad[1].y = src.rows*0.25;
dstQuad[2].x = src.cols*0.2; //dst Bottom left
dstQuad[2].y = src.rows*0.7;
dstQuad[3].x = src.cols*0.8; //dst Bot right
dstQuad[3].y = src.rows*0.9;
warpMatrix =cv::getPerspectiveTransform(srcQuad,dstQuad);
cv::warpPerspective(src,dst,warpMatrix,src.size());
cv::imshow("source", src);
cv::imshow("destination", dst);
cv::warpPerspective(dst,src2,warpMatrix,dst.size(),CV_WARP_INVERSE_MAP);
cv::imshow("srouce 2 " , src2);
cv::waitKey();
return 0;
我的问题是,如果我从 dst 中选择一个点,如何在 ** src 或 src2 ** 中获取它的坐标,因为 cv::warpPerspective 函数没有t 以 cv::Point 作为参数 ??
【问题讨论】:
-
你想做什么?什么是大问题?
-
如果在 dst 中有一个点的坐标我想知道同一个点的坐标是什么,但是在原始透视中意味着 src
标签: visual-c++ opencv