从opencv中的浮点像素坐标重新映射图像

时间:2012-08-22 07:59:56

标签: image image-processing opencv

我有一个带有浮点像素坐标的矩阵和相应的浮点像素坐标中的灰度值矩阵。我需要将图像从浮点像素坐标重新映射到常规网格。 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中是否有一种简单的方法可以执行此类重映射,还是可以建议任何其他开源图像处理库来解决问题?

1 个答案:

答案 0 :(得分:1)

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

如果地图中定义的变换是单应变换,则它有效。如果它是一些旋转,鱼眼效果,镜头校正图等,它就不起作用。