2014-10-15 1 views
1

Я позволил пользователю выбрать 5 очков на двух изображениях, которые не имеют одинакового размера (может быть, это проблема). Как пользователь выбирает точку на любом изображении, я нажимаю этот Point2f вектор, посвященный этому конкретному изображению.Почему findHomography возвращает плохой результат?

Таким образом, в одном случае, у меня есть следующие данные:

1. Image 2 at x: 607, and y: 286 
2. Image 2 at x: 750, and y: 367 
3. Image 2 at x: 527, and y: 353 
4. Image 2 at x: 752, and y: 469 
5. Image 2 at x: 584, and y: 482 

-

1. Image 1 at x: 301, and y: 343 
2. Image 1 at x: 440, and y: 328 
3. Image 1 at x: 275, and y: 472 
4. Image 1 at x: 478, and y: 457 
5. Image 1 at x: 389, and y: 597 

Однако findHomohraphy возвращает

[0, 0, 0; 

0, 0, 0; 

0, 0, 0] 

Это то, что моя функция делает, когда он получает провести 2 вектора с 4 точками.

Mat tranform(std::vector<cv::Point2f> src, std::vector<cv::Point2f> dst) { 
    transMatrix = findHomography(src, dst, CV_RANSAC); 
    std::cout << transMatrix << std::endl; 
    return transMatrix; 
} 

Я также попытался изменить метод аргумент findHomohraphy из 0 в CV_RANSAC.

Я отлаживаю немного дальше, и у меня возникли проблемы с печатью вектора Point2f. Возможно, я не назначаю его правильно

Это то, что я сейчас делаю в функции обратного вызова окна изображения.

imgOnePoints.assign(imgOneIndex, Point2f(x,y)); 
+0

Я думаю, что он не может найти ничего общего. – zoran404

+0

Возможно, я не присвоил вектор правильно – Iancovici

+0

Общий совет с поиском гомографии; Больше очков = лучше. Особенно с Ransac, поскольку это позволяет игнорировать отклонения. Результат нулевой матрицы означает, что он не смог найти гомографию (не всегда означает, что нет ни одного из источников) – Nallath

ответ

0

Оказывается, я действительно не назначая вектор правильно

Я установил его реализованного с помощью присвоения push_back

imgOnePoints.push_back(Point2f(x,y)); 

Теперь я получаю следующий результат

[9.160730442076495, -1.849442562331516, -180.7111392985398; 
    4.977742556341154, 2.013216209765684, -1267.475935610038; 
    0.007750660030394876, -0.0003148605099947704, 0.9999999999999999] 

 Смежные вопросы

  • Нет связанных вопросов^_^