2011-11-20 23 views
10

Próbuję zszyć 2 obrazy tylko na początek do panografii. I "ve już znaleźć keypoints, uznał homography użyciu RANSAC ale nie mogę dowiedzieć się, jak dostosować te 2 zdjęcia (jestem nowy w OpenCV). Obecnie część koduŁączenie 2 obrazów w opencv

vector<Point2f> points1, points2; 
for(int i = 0; i < good_matches.size(); i++) 
{ 
    //-- Get the keypoints from the good matches 
    points1.push_back(keypoints1[ good_matches[i].queryIdx ].pt); 
    points2.push_back(keypoints2[ good_matches[i].trainIdx ].pt); 
} 

/* Find Homography */ 
Mat H = findHomography(Mat(points2), Mat(points1), CV_RANSAC); 

/* warp the image */ 
warpPerspective(mImg2, warpImage2, H, Size(mImg2.cols*2, mImg2.rows*2), INTER_CUBIC); 

i muszę zszyć Mat mImg1 gdzie jest załadowany pierwszy obraz i Mat warpImage2 gdzie jest wypaczony drugi obraz.Czy możesz mi pokazać, jak to zrobić? Mam również przekrzywiony obraz pocięty i wiem, że muszę zmienić matrycę homografii, ale na razie muszę wyrównać te dwa obrazy. Dziękuję za pomoc

Edycja. z pomocą Martina Becketta dodałem ten kod

//Point a cv::Mat header at it (no allocation is done) 
Mat final(Size(mImg2.cols*2 + mImg1.cols, mImg2.rows*2),CV_8UC3); 

//velikost img1 
Mat roi1(final, Rect(0, 0, mImg1.cols, mImg1.rows)); 
Mat roi2(final, Rect(0, 0, warpImage2.cols, warpImage2.rows)); 
warpImage2.copyTo(roi2); 
mImg1.copyTo(roi1); 
imshow("final", final); 

i to działa teraz

Odpowiedz

8

utworzyć nowy większy obraz o odpowiednim rozmiarze kombinowanym, następnie make ROIs wielkości istniejących zdjęć w pozycjach chcesz je w końcowym obrazie i kopiowanie istniejących obrazów do ROI .

+0

Dziękujemy! To zadziałało – Bodyboard

+0

Zrobiłem twoje kroki, edytowane przez Bodyboard, Ale otrzymuję zawsze ostateczny obraz jako całkowicie szary obraz. ! podczas gdy jestem pewien, że mój wynikowy obraz jest poprawnie wypaczony. Każda pomoc zostanie doceniona, – dervish

+3

@ Chłodnicze są twoje obrazy źródłowe 3 kanał? Jeśli nie, musisz przekonwertować je przed zszyciem lub zrobić wynik tego samego typu co źródło, a następnie przekonwertować –

Powiązane problemy