2012-04-01 2 views
0

두 이미지를 함께 스티치하려고하는데 첫 이미지 만 최종 이미지에서 볼 수 있습니다. 다음은 내 코드입니다 :위한 deltaX와 deltaY에 제로를하는 경우opencv : 함께 이미지 스티치

Mat result(1000, 1000, CV_8UC3); 
Mat firstPart = result(Rect(0, 0, image1.cols, image1.rows)); 
Mat secondPart = result(Rect(deltaX, deltaY, image2.cols+deltaX, image2.rows+deltaY)); 
image1.copyTo(firstPart); 
image2.copyTo(secondPart); 
imshow("result", result); 

이미지 2는 결과 만 볼 수 있고 그 이유를 (이미지 2 +위한 deltaX < 1000, deltaY에 대한 동일)을 알아낼 수 없습니다.

+0

image2 위에 image2가 복사되었는지 확인 했습니까? 이 경우 오프셋을 사용하여 image2를 결과로 복사해야합니다. – blejzz

+0

예, 저는 image1을 주석 처리했습니다. deltaX와 deltaY를 0으로 설정하면 image2가 왼쪽 위 모서리에 표시되고, 그 중 하나는 0이 아니며 표시되지 않습니다. – user765269

+0

image2를 주석 처리하고 결과에 image1이 있는지보고 다시 게시하십시오. – blejzz

답변

0

안드로이드에서 오는 것은 Rect의 매개 변수가 왼쪽, 위, 오른쪽, 아래쪽에 있다고 가정했지만 너비와 높이와 쌍을 이루는 왼쪽에 있습니다. 그러므로

Rect(deltaX, deltaY, image2.cols, image2.rows) 

대신

Rect(deltaX, deltaY, image2.cols+deltaX, image2.rows+deltaY) 

이어야한다.