Я уже проверил stackOverflaw и особенно эту ссылку, но это не так. т ответь на мой вопрос.
Я вычисляю гомографию, используя Ransac с OpenCv, чтобы сопоставить две картинки. Здесь соответствующий код:
Mat H = findHomography( obj, scene, CV_RANSAC,3);
std::cout << "Size of homography " << *H.size << std::endl ;
//Print homography
for (int i=0;i<H.rows;i++){
for (int j=0;j<H.cols;j++){
std::cout << "valeur H : " << (int)H.at<double>(i,j) << endl;
}
}
int N=1;
const double det = H.at<double>(0, 0) * H.at<double>(1, 1) - H.at<double>(1, 0) * H.at<double>(0, 1);
std::cout << "Determinant homography : " << det << std::endl;
Для хорошего совпадения (точно такая же картинка) у меня на терминале это:
Размер гомографии 3
Валер Ч : 1
Валер Х : 0
Валер Х : 0
Валер Х : 0
Валер Ч : 1
Валер Х : 0
Валер Х : 0
Валер Х : 0
Валер Ч : 1
Детерминантная гомография: 1
Для плохого совпадения (две разные картинки) у меня есть это:
Размер гомографии 3
Валер Х : 0
Валер Х : 0
Валер Х : 241
Валер Х : 0
Валер Х : 0
Валер Х : 277
Валер Х : 0
Валер Х : 0
Валер Ч : 1
Детерминантная гомография: 0,00533235
Я не понимаю этого результата. Может кто-нибудь объяснить мне? Я хотел бы использовать эти значения, чтобы определить, является ли это хорошим совпадением или нет. Я ожидал, что в первом случае будет только 1, но нет.
Я думаю, что использую Homography и Ransaw, не совсем понимая. Я проверил в Интернете, но это сложно, поэтому, если у вас есть хорошее объяснение, я его принимаю.
Благодарить.