1

我有一个带有浮点像素坐标的矩阵和这个浮点像素坐标中相应的灰度值矩阵。我需要将图像从浮点像素坐标重新映射到常规网格。opencv 的 cv::remap 函数像这样转换源图像: dst(x,y) = src(mapx(x,y), mapy(x,y)) 在我的情况下,我有这样的东西: dst(mapx (x,y), mapy(x,y)) = src(x,y) 根据上面的等式,我需要确定目标图像 (dst(x,y))。OpenCv 中是否有一种简单的方法来执行这种重新映射,或者你能推荐任何其他开源图像处理库来解决这个问题吗?

4

1 回答 1

1
  • 拍摄照片的四个角。
  • 在 dst 图像中提取它们的对应对象。将它们存储在两个点向量中:std::vector<cv::Point> dstPts, srcPts.
  • 提取它们之间的几何关系cv::findHomography(dstPts, srcPtrs,...)
  • 应用 cv::warpPerspective()。在内部,它计算并应用正确的重新映射

如果您的地图中定义的变换是单应变换,它就可以工作。如果是一些漩涡、鱼眼效果、镜头校正图等就不行了。

于 2012-08-22T08:16:16.247 回答