【发布时间】:2014-05-09 19:50:30
【问题描述】:
在 OpenCV 中,我使用特征匹配技术在其他图像中查找匹配对象。当我找到匹配的对象时,我使用“findHomography”方法计算透视变换。 FindHomography
这很好用,我可以根据这个矩阵转换图像。我有一个视频,它在原始图像和转换图像之间进行 alpha 混合,但现在我想为原始位置和转换位置之间的过渡设置动画,而不仅仅是两者之间的 alpha 混合。
我有 3x3 Homography 矩阵,它给了我完整的变换,但我将如何在没有变换和这个之间进行插值?如果 3x3 矩阵有单个值,那么我将在 0 和矩阵值之间插值多少时间步。但是 3x3 矩阵的每个元素都由 3 个值组成,我猜是因为它们是齐次坐标。
谁能建议解决这个问题的最佳方法。
编辑
尝试 AldurDisciple 建议的方法,我正在创建单位矩阵:
Mat eye = Mat::eye(3,3,CV_32F);
并执行建议的计算:
Mat newH = (1-calc) * eye + calc * H;
其中 calc = k/N 表示步数/总步数。
我在尝试计算 newH 时遇到断言失败错误,错误是:
src1.type() == src2.type() in function scaleAdd
【问题讨论】:
标签: c++ opencv interpolation homography