在OpenCV中,我使用特征匹配技术来查找其他图像中的匹配对象。当我找到匹配对象时,我使用“findHomography”方法计算透视变换。 FindHomography原始图像和变形图像之间的插值
这工作正常,我可以基于这个矩阵转换图像。我有一个视频alpha混合原始和转换后的图像之间,但现在我想动画之间的原始和转换位置之间的过渡,而不是两者之间的阿尔法混合。
我有3x3的Homography矩阵,它给了我完整的转换,但是如何在不转换和插入之间插入?如果3x3矩阵有单个值,那么我会在0和矩阵值之间进行插值,无论多少时间步骤。然而,3×3矩阵的每个元素都由3个值组成,我猜测是因为它们是同质坐标。
任何人都可以建议解决此问题的最佳方法。
EDIT
试图通过AldurDisciple建议我正在与创建所述单位矩阵的方法,包括:
Mat eye = Mat::eye(3,3,CV_32F);
并与执行所建议的计算:
Mat newH = (1-calc) * eye + calc * H;
其中计算值= K/N步骤/总步数。
我得到一个断言失败错误试图用错误时正在计算newH:
src1.type() == src2.type() in function scaleAdd
我试着实现你的建议,我收到了一个断言失败的错误,我已经在编辑中解释了我的问题。 –
@Tomsmith这可能是因为您估计的单应性类型为'double',请在创建单位矩阵时尝试使用'CV_64F'。 – AldurDisciple
非常感谢,现在有效。我也有一个整数除法的问题,但现在我有一个流畅的动画。 –