2012-04-07 2 views
0

내부 가능 OpenCV의 (JavaCv) 내부로 화상 이미지를 배치한다. 예를 들어 나는 1000x1000 이미지와 100x100 이미지를 가지고 있습니다. 그리고 위치 600x600에서 더 큰 이미지 안에 더 작은 이미지를 배치하고 싶습니다.IplImage IplImage

는 파란색 상자가 1000x1000 IplImage과 빨간 하나는 100 × 100 IplImage라고 할 수 있습니다. 빨간색 상자를 파란색 상자에 넣을 수 있습니까? 실시간으로 작동해야하기 때문에 계산보다는 오히려 효율적입니다. 사전

답변

4

이 파이썬에 있지만, 자바로 변환이 정말 쉬운 될 것입니다에

enter image description here

들으. GetSubRect()Copy()을 사용하십시오. GetSubRect()는 관심의 직사각형 하위 배열을 반환합니다 (관심 왼쪽 상단 지점 및 너비와 높이 지정). 그런 다음 Copy()을 사용하여 이미지를 복사하십시오. karlphillip에서 알 수 있듯이

import cv 
blue = cv.LoadImage("blue.jpg") 
red = cv.LoadImage("red.jpg") 

sub = cv.GetSubRect(blue, (100, 100, 50, 50)) 
cv.Copy(red,sub) 

cv.ShowImage('blue_red', blue) 
cv.WaitKey(0) 

또는, SetImageROI()를 사용하여 '관심의 영역을'지정과 거의 같은 일을 할 수있는 :

cv.SetImageROI(blue,(100,100,50,50)) 
cv.Copy(red, blue) 
cv.ResetImageROI(blue) 

그것의, 그렇지 않으면 당신을 ROI, ResetImageROI를 재설정하는 것이 매우 중요 전체 이미지가 아니라 ROI 만 표시하고 저장합니다.

데모 출력 : 블루

: enter image description here 빨간색 : enter image description here 결합이 작동 enter image description here

+0

들으은 (두 번째 솔루션을 사용) – Ojtwist

관련 문제