2013-12-09 4 views
1

이미지를 자르려고하지만 (imcrop()과 같은) 사각형이 아니라 4 개의 모서리가있는 다각형으로 자릅니다. 나는 많은 것을 검색해 내고 자른 다각형을 사각형으로 재구성하기 위해 동질화를 수행해야한다는 것을 알았습니다. Matlab에서 이미지 자르기 및 변형

그래서 나는 이미지의 다각형을 선택 imcrop()을 사용했습니다 :

img = imread('pout.tif'); 
imshow(img); 
h = impoly; 
position = wait(h); 
x1 = min(position(:, 1)); 
x2 = max(position(:, 1)); 
y1 = min(position(:, 2)); 
y2 = max(position(:, 2)); 
BW = createMask(h); 

어떻게 네 모서리를 가진 다각형 모양의 영역을 자르려면 다음 두 가지가 사용할 수 있을까?

MATLAB

에서

+0

영역을 자르려면 http://stackoverflow.com/questions/20130210/을 참조하십시오 ('imfreehand'를 사용하지만 기본 아이디어는 'impoly'와 동일합니다). – nkjt

답변

2

먼저 참조, 자르기 이미지를 변환하는 것은 좋은 생각이다. 호모 그래피를 적용 할 때 보간으로 인한 인공물로 ROI의 내용을 변경하게됩니다. 또한 언젠가 4 점 이상으로 정의 된 투자 수익 (ROI)을 원한다면이 접근법은 더 이상 적용되지 않습니다.

둘째, 나는 다음과 같이 스크립트에 약간의 변경 :

img = imread('circuit.tif'); 
imshow(img); 
h = impoly; 
position = wait(h); 
boundbox = [min(position(:,1)), .... 
     min(position(:,2)), .... 
     max(position(:,1))-min(position(:,1)), .... 
     max(position(:,2))-min(position(:,2))]; 
BW = createMask(h); 
img = imcrop(uint8(BW).*img, boundbox); 
imshow(img) 

당신은 거의 ... 단지 투자 수익 (ROI)의 경계 상자와 원하는 이미지의 ROI 및 작물 마스크했다 . 여기서는 마스크 외부에 0을 넣습니다. 당신이 원한다면 다르게 적응할 수 있습니다.

1

시도 "impoly"기능은 모든 http://www.mathworks.in/help/images/ref/impoly.html

+0

질문에 비추어 볼 때, OP는 이미 '임포 리'를 시도했다. – nkjt

+0

@nkjt 그건 impoly 함수가 아닙니다 .. 처음에 위에 주어진 링크를 참조하십시오 –

+0

당신은 첫 번째 구문 예제 인'h = impoly'가 OP 코드에 나타나는 링크를 의미합니까? – nkjt