2014-06-09 2 views
2

나는 opencv 이미지 처리 라이브러리를 사용하고 있습니다. 나는 원래의 매트 이미지의 직사각형 영역 (원본 이미지보다 작음)을 다른 작은 이미지로 대체하려고합니다. 나는이 일을 할 방향을 찾을 수 없었다.매트 이미지의 직사각형 영역을 대체하는 방법

누구든지 나를 도울 수있다. 미리 감사드립니다.

답변

5

최선의 방법이라고 주장하지 마십시오.

Mat m = ... // your smaller mat 
Mat submat= matOrig.submat(new Rect(x,y, m.cols(), m.rows())); 
m.copyTo(submat); 

m은 matOrig 내부에서 벗어나지 않는다고 가정해야합니다. 서브 매트를 얻으면 소스 매트에 계속 링크됩니다.

+0

원본 이미지를 자동으로 업데이트하나요? (원본 이미지에서 변경되지만 원래 이미지에서 변경된 부분 집합 만 업데이트됩니다. 아무튼 도움을 주셔서 감사합니다. – shadee

+0

원본을 업데이트해야합니다. . 서브 맵 복사를 먼저하고 복사본으로 복사하지 않으셨습니까? – medloh

+0

자바를 사용하여 이미지의 일부를 업데이트하는 작은 메소드를 작성했습니다. 자바 때문입니까? 여기 내 메소드가 있습니다. '공공 무효 ChangeImage (매트 SRC 매트 작은 사각형의 ROI) { \t \t 매트 하위 뷰 = src.submat (ROI) \t \t small.copyTo (하위 뷰); Highgui.imwrite ("combined-image.png", src); \t} ' – shadee

관련 문제