当我得到使用函数cvFindHomograhpy()的结果时,我遇到了问题。
结果它给出了负坐标,我现在将解释我在做什么。
我正在使用光流法进行视频稳定。我估计了第一帧和第二帧中特征的位置。现在,我的目标是扭曲图像以稳定图像。在此步骤之前,我应该计算我使用上述函数的帧之间的单应矩阵,但是我得到这个结果的问题似乎并不现实,因为它有负值,这些值可以改为更奇怪的结果。
0.482982 53.5034 -0.100254
-0.000865877 63.6554 -0.000213824
-0.0901095 0.301558 1
获得这些结果后,我通过使用CvWarpPerspective()来应用图像变形的问题。该错误表明使用矩阵时出现问题。 “cvarrTomat”变换不正确?
问题出在哪里?如果可以的话,你能给我另一个建议吗?
注意:如果你能帮助我在c ++中实现warping,那就太棒了。
谢谢
答案 0 :(得分:2)
差的单应性估计会在CvWarpPerspective()内产生扭曲错误。 你发布的单应性值表明你有一个完整的投影变换,它将无穷远处的点移动到欧德第二平面上的点,这可能是错误的。 在用于计算良好单应性模型的视频稳定中,通常使用其他特征,例如哈里斯角,粗麻布仿射或SIFT / SURF结合鲁棒模型估计器,如RANSAC或LMEDS。
查看this link有关视频稳定的matlab示例...