6

私が知っているように、OpenCV は の問題を解決するために RANSAC を使用しfindHomographyhomograph_mask.

ただし、アフィン行列を意味する2D変換だけを推定したい場合、findHomographyRANSACを使用してそのマスクを返すのと同じ方法論を使用する方法はありますか?

4

2 に答える 2

7

EstimatorRigidTransform は内部でRANSACを使用しますが、パラメーターは現時点で固定されています - ここのコードを参照してください - https://github.com/opencv/opencv/blob/master/modules/video/src/lkpyramid.cpp

cv::Mat cv::estimateRigidTransform( InputArray src1, InputArray src2, bool fullAffine )
{
    const int RANSAC_MAX_ITERS = 500;
    const int RANSAC_SIZE0 = 3;
    const double RANSAC_GOOD_RATIO = 0.5;

    // ...

    // RANSAC stuff:
    // 1. find the consensus
    for( k = 0; k < RANSAC_MAX_ITERS; k++ )
    {
        int idx[RANSAC_SIZE0];
        Point2f a[RANSAC_SIZE0];
        Point2f b[RANSAC_SIZE0];

        // choose random 3 non-complanar points from A & B
        for( i = 0; i < RANSAC_SIZE0; i++ )
        {
            for( k1 = 0; k1 < RANSAC_MAX_ITERS; k1++ )
            {
于 2016-08-16T19:06:46.217 に答える