Ho due immagini (A e B) leggermente distorte uno dall'altro, dove ci sono traslazione, rotazione e scala differenze tra loro (per esempio, queste immagini :)COME USARE L'OOMOGENO per trasformare le immagini in OpenCV?
Ssoooooooo quello che serve è di applicare un tipo di trasformazione in pic B in modo da compensare la distorsione/traduzione/rotazione che esiste per rendere entrambe le immagini con la stessa dimensione, orientamento e senza traduzione
ho già ha estratto i punti e trovato l'omografia, come mostrato sotto. Ma non so come usare l'Homography per trasformare Mat img_B
in modo che assomigli a Mat img_A
. Qualche idea?
//-- Localize the object from img_1 in img_2
std::vector<Point2f> obj;
std::vector<Point2f> scene;
for (unsigned int i = 0; i < good_matches.size(); i++) {
//-- Get the keypoints from the good matches
obj.push_back(keypoints_object[good_matches[i].queryIdx].pt);
scene.push_back(keypoints_scene[good_matches[i].trainIdx].pt);
}
Mat H = findHomography(obj, scene, CV_RANSAC);
Cheers,