Difficulté avec FindHomography
J'ai des difficultés avec ce qui devrait être un utilisation très simple de FindHomography voici mon code très simple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| std::vector<cv::Point2f> P1(4);
P1[0].x = 10; P1[0].y = 10;
P1[1].x = 20; P1[1].y = 20;
P1[2].x = 30; P1[2].y = 30;
P1[3].x = 40; P1[3].y = 40;
std::vector<cv::Point2f> P2(4);
P2[0].x = 210; P2[0].y = 210;
P2[1].x = 220; P2[1].y = 220;
P2[2].x = 230; P2[2].y = 230;
P2[3].x = 240; P2[3].y = 240;
cv::Mat T;
T = cv::findHomography( P1, P2, 0 ); |
Voici la matrice que j'obtiens
[-1.#IND, -1.#IND, -1.#IND;
1.#INF, -1.#INF, -1.#IND;
-1.#IND, -1.#IND, -1.#IND]
Je vois pas ou est le problème
merci
Des fois la solution n'est pas un probleme de code
Bonjour,
il te suffit de dessiner tes points pour comprendre le problème, et tu verras qu'il n'existe pas de solution mathématique au probleme que tu poses ( les points de tes quadrilatères sont colinéaires).
essais avec :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
std::vector<cv::Point2f> P1(4);
P1[0].x = 10; P1[0].y = 10;
P1[1].x = 50; P1[1].y = 10;
P1[2].x = 50; P1[2].y = 100;
P1[3].x = 10; P1[3].y = 100;
std::vector<cv::Point2f> P2(4);
P2[0].x = 15; P2[0].y = 10;
P2[1].x = 51; P2[1].y = 12;
P2[2].x = 52; P2[2].y = 110;
P2[3].x = 15; P2[3].y = 105; |