Main Content

imcrop

설명

대화형 방식으로 영상 자르기

참고

대화형 방식 구문은 범주 영상을 지원하지 않습니다. 범주 영상의 경우 자르기 영역 rect를 지정해야 합니다.

Icropped = imcrop은 현재 Figure에 표시된 회색조 영상, 트루컬러 영상 또는 이진 영상과 연결된 대화형 방식의 영상 자르기 툴을 만듭니다. imcrop은 잘라낸 영상 Icropped를 반환합니다.

이 구문과 다른 대화형 방식 구문을 사용할 때, 영상 자르기 툴은 사용자가 작업을 마칠 때까지 MATLAB® 명령줄을 차단합니다. 영상 자르기 툴 사용에 대한 자세한 내용은 대화형 방식 동작 항목을 참조하십시오.

예제

Icropped = imcrop(I)는 Figure 창에 회색조 영상, 트루컬러 영상 또는 이진 영상 I를 표시하고, 이 영상과 연결된 대화형 방식의 영상 자르기 툴을 만듭니다.

Xcropped = imcrop(X,cmap)은 컬러맵 cmap을 사용하여 Figure에 인덱스 영상 X를 표시하고, 이 영상과 연결된 대화형 방식의 영상 자르기 툴을 만듭니다. imcrop은 잘라낸 인덱스 영상 Xcropped를 반환하며, 이 영상 또한 컬러맵 cmap을 갖습니다.

___ = imcrop(h)는 핸들 h로 지정된 영상과 연결된 대화형 방식의 영상 자르기 툴을 생성합니다.

자르기 영역을 지정하여 영상 자르기

예제

Icropped = imcrop(I,rect)는 자르기 사각형 rect에 지정된 위치와 치수에 따라 영상 I를 자릅니다. 잘라낸 영상에는 입력 영상에서 사각형으로 완전히 또는 부분적으로 둘러싸인 픽셀이 모두 포함되어 있습니다.

출력 영상의 실제 크기는 rect로 지정된 너비 및 높이와 항상 정확히 일치하지는 않습니다. 예를 들어, rect[20 20 40 30]이고 디폴트 공간 좌표 시스템을 사용한다고 가정하겠습니다. 지정된 사각형의 왼쪽 위 코너는 공간 (x,y) 좌표가 (20,20)인 픽셀의 중앙입니다. 사각형의 오른쪽 아래 코너는 공간 (x,y) 좌표가 (60,50)인 픽셀의 중앙입니다. 결과 출력 영상은 30x40 픽셀이 아니라 31x41 픽셀입니다.

예제

Xcropped = imcrop(X,cmap,rect)는 인덱스 영상 X를 컬러맵 cmap을 사용하여 자르기 사각형 rect에 지정된 위치와 치수에 따라 자릅니다. imcrop은 잘라낸 인덱스 영상 Xcropped를 반환하며, 이 영상 또한 컬러맵 cmap을 갖습니다.

___ = imcrop(xref,yref,___)xrefyref로 정의되는 세계 좌표 시스템을 사용하여 입력 영상을 자릅니다. xrefyref 입력 인수 뒤에는 입력 영상 I 또는 X를 포함하는 구문의 인수를 지정할 수 있습니다.

추가 출력 옵션 지정하기

예제

[___,rectout] = imcrop(___)은 또한 자르기 사각형의 위치를 rectout으로 반환합니다. 다른 모든 구문의 입력 인수를 사용할 수 있습니다.

[xrefout,yrefout,___] = imcrop(___)xrefout, yrefout으로 입력 영상의 영상 제한값도 반환합니다.

출력 인수 없는 imcrop(___)은 잘라낸 영상을 새 Figure 창에 표시합니다. 이 구문은 범주 영상을 지원하지 않습니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들입니다.

I = imread('cameraman.tif');

이 영상과 연결된 영상 자르기 툴을 엽니다. 잘라낸 영상을 저장할 변수를 지정합니다. 이 예제에서는 imcrop이 사용자가 그리는 사각형의 위치 벡터(4개의 요소로 지정됨)를 반환하는 선택적 반환 값 rect를 사용합니다.

[J,rect] = imcrop(I);

커서를 영상 위로 이동하면 커서가 십자 모양 으로 바뀝니다. 영상 자르기 툴은 사용자가 작업을 마칠 때까지 MATLAB 명령줄을 차단합니다.

마우스를 사용하여, 영상에서 잘라내려는 부분 위로 사각형을 그립니다.

자르기 사각형을 더블 클릭하거나 상황별 메뉴에서 영상 자르기를 선택하여 자르기 작업을 수행합니다.

영상 자르기 툴은 잘라낸 영역을 반환 변수 J로 반환합니다. 변수 rect는 사용자가 지정한 자르기 사각형을 나타내는, 요소를 4개 가진 위치 벡터입니다.

whos
Name        Size             Bytes  Class    Attributes

  I         256x256            65536  uint8              
  J         121x126            15246  uint8          
  rect        1x4                 32  double          

영상을 작업 공간으로 읽어 들입니다.

I = imread('circuit.tif');

자르기 사각형을 지정하여 영상을 자릅니다.

I2 = imcrop(I,[75 68 130 112]);

원본 영상과 잘라낸 영상을 표시합니다.

subplot(1,2,1)
imshow(I)
title('Original Image')
subplot(1,2,2)
imshow(I2)
title('Cropped Image')

영상을 읽어 들여 표시합니다.

I = imread('parkavenue.jpg');
imshow(I)

원하는 창 크기를 [width, height] 형식의 요소를 2개 가진 벡터로 지정합니다.

targetSize = [300 600];

자르기 창의 공간 범위를 지정하는 Rectangle 객체를 만듭니다.

r = centerCropWindow2d(size(I),targetSize);

영상을 공간 범위로 자릅니다. 잘라낸 영역을 표시합니다.

J = imcrop(I,r);
imshow(J)

인덱스 영상과 이 영상에 연결된 맵을 작업 공간으로 불러옵니다.

load trees

자르기 사각형을 지정하여 인덱스 영상을 자릅니다.

X2 = imcrop(X,map,[30 30 50 75]);

원본 영상과 잘라낸 영상을 표시합니다.

subplot(1,2,1)
imshow(X,map)
title('Original Image')
subplot(1,2,2)
imshow(X2,map)
title('Cropped Image')

입력 인수

모두 축소

자를 영상으로, 다음 중 하나로 지정됩니다.

  • 회색조 영상을 나타내는 m×n 숫자형 행렬

  • 트루컬러 영상을 나타내는 m×n×3 숫자형 배열

  • 이진 마스크를 나타내는 m×n 논리형 행렬.

  • 레이블 영상을 나타내는 m×n categorical형 행렬.

    참고

    categorical형 입력값의 경우에는 자르기 사각형 rect를 지정해야 합니다. 대화형 방식 구문은 categorical형 입력값을 지원하지 않습니다.

대화형 방식 구문을 사용하면 imcropimshow 함수를 호출하며 imshow가 받는 영상 클래스를 받습니다.

데이터형: single | double | int8 | int16 | uint8 | uint16 | logical | categorical

자를 인덱스 영상으로, 정수로 구성된 행렬로 지정됩니다.

데이터형: single | double | int8 | int16 | uint8 | uint16 | logical

인덱스 영상 X와 연결된 컬러맵으로, c×3 숫자형 행렬로 지정됩니다. 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다. 데이터형이 single 또는 double인 값은 범위 [0, 1] 내에 있어야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

공간 좌표로 지정된 자르기 사각형의 크기와 위치로, [xmin ymin width height] 형식의 요소를 4개 가진 숫자형 벡터 또는 images.spatialref.Rectangle 객체로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

입력 영상으로, Figure, 좌표축, uipanel 또는 영상 그래픽스 객체에 대한 핸들로 지정됩니다. h가 axes 핸들이거나 Figure 핸들인 경우 imcropfindobj(H,'Type','image')에서 반환된 첫 번째 영상을 사용합니다.

세계 좌표상의 x 차원의 영상 제한값으로, [xmin xmax] 형식의, 요소를 2개 가진 숫자형 벡터로 지정됩니다. 여기서 xmax는 xmin보다 큽니다. xref의 값은 영상 XData를 설정합니다.

세계 좌표상의 y 차원의 영상 제한값으로, [ymin ymax] 형식의, 요소를 2개 가진 숫자형 벡터로 지정됩니다. 여기서 ymax는 ymin보다 큽니다. yref의 값은 영상 YData를 설정합니다.

출력 인수

모두 축소

잘라낸 영상으로, 숫자형 배열, 숫자형 행렬, 논리형 행렬 또는 categorical형 행렬로 반환됩니다.

  • 입력 영상 I를 지정할 경우, 출력 영상은 입력 영상과 동일한 데이터형을 갖습니다.

  • 입력 영상을 지정하지 않을 경우에도 출력 영상은 일반적으로 입력 영상과 동일한 데이터형을 갖습니다. 그러나, 입력 영상의 데이터형이 int16형이거나 single형이면 출력 영상의 데이터형은 double형입니다.

잘라낸 인덱스 영상으로, 숫자형 행렬로 반환됩니다.

자르기 사각형의 크기와 위치로, [xmin ymin width height] 형식의, 요소를 4개 가진 숫자형 벡터로 반환됩니다.

세계 좌표상의 x 차원의 영상 제한값으로, [xmin xmax] 형식의, 요소를 2개 가진 숫자형 벡터로 반환됩니다. xref를 사용하여 세계 좌표상의 영상 제한값을 지정할 경우, xrefoutxref와 같습니다. 그렇지 않을 경우 xrefout은 원본 영상 XData와 같습니다.

세계 좌표상의 y 차원의 영상 제한값으로, [ymin ymax] 형식의, 요소를 2개 가진 숫자형 벡터로 반환됩니다. yin을 사용하여 세계 좌표상의 영상 제한값을 지정할 경우, yrefoutyin과 같습니다. 그렇지 않을 경우 yrefout은 원본 영상 YData와 같습니다.

세부 정보

모두 축소

대화형 방식 동작

영상 자르기 툴은 이동과 크기 조정이 가능한 사각형으로, 영상 위에 놓은 다음 마우스를 사용하여 대화형 방식으로 자르기 작업을 수행할 수 있습니다.

영상 자르기 툴이 Figure에 활성화된 경우, 포인터를 대상 영상 위로 가져가면 포인터가 십자 모양 으로 바뀝니다. 마우스를 클릭한 후 끌어서 자르기 사각형을 지정하십시오. 마우스를 사용하여 자르기 사각형을 이동하거나 크기를 조정할 수 있습니다. 자르기 사각형의 크기 조정과 위치 지정을 마치면, 마우스 왼쪽 버튼을 더블 클릭하여 잘라낸 영상을 생성하십시오. 상황별 메뉴에서 영상 자르기를 선택할 수도 있습니다. 다음 그림에는 영상 자르기 툴과 함께 상황별 메뉴가 표시되어 있습니다.

대화형 방식 동작설명
영상 자르기 툴 취소.

Backspace 키, Esc 키 또는 Delete 키를 누르거나, 자르기 사각형 내부를 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 취소를 선택합니다.

참고: ROI를 삭제할 경우 함수는 빈 값을 반환합니다.

영상 자르기 툴 크기 조정.자르기 사각형의 크기 조정 핸들 중 하나를 선택합니다. 포인터가 양방향 화살표 로 바뀝니다. 마우스를 클릭한 후 끌어서 자르기 사각형의 크기를 조정합니다.
영상 자르기 툴 이동.포인터를 자르기 사각형의 경계 안으로 이동합니다. 포인터가 십자형 화살표 로 바뀝니다. 마우스를 클릭한 후 끌어서 사각형을 영상 위로 움직입니다.
자르기 사각형을 표시하는 데 사용된 색 변경.자르기 사각형의 경계 내부를 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 색 설정을 선택합니다.
영상 자르기.

마우스 왼쪽 버튼을 더블 클릭하거나, 자르기 사각형의 경계 내부를 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 영상 자르기를 선택합니다.

자르기 사각형의 좌표 가져오기.자르기 사각형의 경계 내부를 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 위치 복사를 선택합니다. imcrop은 요소를 4개 가진 위치 벡터([xmin ymin width height])를 클립보드에 복사합니다.

확장 기능

R2006a 이전에 개발됨