【发布时间】:2014-10-21 15:57:40
【问题描述】:
我遇到了几何变形的问题,基本上是从自上而下的角度扭曲图像。不使用积分。
我有什么:
我有一张 45 度角的图像(即)F 是我的相机指向下方的位置
This 关于我想做的事情的论文。第2页有主要公式
- opencv
cv::warpPerspective中用于激活此扭曲图像的主要函数 - 我有必要的 Ccam1_cam2 旋转(假设我的数学是正确的)
我做了什么:
- 我已经使用论文中的公式生成了一个 H 矩阵。
- 测试如果没有平移,只有旋转,即
H=R,是否会使扭曲的图像看起来更好。 -
从扭曲的图像中查看我的 x,y 值,发现它们是
代码:
cv::Mat hmatrix = (cv::Mat_<double>(3,3) << H.c11, H.c12, H.c13, H.c21, H.c22, H.c23, H.c31, H.c32, H.c33); lfImg = cv::imread("undistortedsmall.bmp", 0); imshow("not warped image", lfImg); cv::waitKey(0); cv::Mat warpedimg; cv::Scalar borderValue; cv::warpPerspective(lfImg, warpedimg, hmatrix ,lfImg.size(),cv::INTER_LINEAR,cv::BORDER_CONSTANT,borderValue); imshow("warpedImage", warpedimg); 我从一个自上而下的图像中获取了点,并从我的 45 度图像中获取了相应的点,并生成了一个变形良好的 H 矩阵。只是为了看看 H 矩阵会是什么样子。但规模完全不同。
示例:
My generated H Matrix:
0.240053 0.859119 -0.451983
0.689905 -0.478534 -0.543171
-0.682938 -0.181435 -0.707585
pt generated H matrix
0.894764 3.37653 77.6052
-0.950235 2.02846 240.977
-8.73899e-05 0.00384326 1
我想要什么:
在不使用从图像中提取的点的情况下对该图像进行自上而下的变形。
问题 黑屏(如果我缩放矩阵我的一些倍数可以说* 100) 我得到一个不正确的翘曲,但至少是可见的
【问题讨论】:
标签: c++ opencv transformation perspective homography