Detecting garbage homographies from findHomography in OpenCV?

前端 未结 3 1033
自闭症患者
自闭症患者 2020-12-07 19:23

I\'m using findHomography on a list of points and sending the result to warpPerspective.

The problem is that sometimes the result is comple

3条回答
  •  無奈伤痛
    2020-12-07 19:44

    There are several sanity tests you can perform on the output. On top of my head:

    1. Compute the determinant of the homography, and see if it's too close to zero for comfort.
    2. Even better, compute its SVD, and verify that the ratio of the first-to-last singular value is sane (not too high). Either result will tell you whether the matrix is close to singular.
    3. Compute the images of the image corners and of its center (i.e. the points you get when you apply the homography to those corners and center), and verify that they make sense, i.e. are they inside the image canvas (if you expect them to be)? Are they well separated from each other?
    4. Plot in matlab/octave the output (data) points you fitted the homography to, along with their computed values from the input ones, using the homography, and verify that they are close (i.e. the error is low).

    A common mistake that leads to garbage results is incorrect ordering of the lists of input and output points, that leads the fitting routine to work using wrong correspondences. Check that your indices are correct.

提交回复
热议问题