Main Content

imrect

(권장되지 않음) 끌기가 가능한 사각형 생성

imrect는 권장되지 않습니다. 새 Rectangle ROI 객체를 대신 사용하십시오. 새 ROI 편의 함수 drawrectangle도 사용할 수 있습니다. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.

설명

imrect 객체는 영상 위에 대화형 사각형을 캡슐화합니다.

마우스를 사용하여 사각형의 크기 및 위치를 조정할 수 있습니다. 사각형에는 상황별 메뉴도 있어 모양 및 동작의 특성을 제어합니다. 자세한 내용은 사용법 항목을 참조하십시오.

생성

설명

h = imrect는 현재 좌표축에서 대화형 방식으로 사각형 배치를 시작하고 imrect 객체를 반환합니다.

h = imrect(hparent)hparent로 지정된 객체에서 대화형 방식으로 사각형 배치를 시작합니다.

예제

h = imrect(hparent,position)hparent로 지정된 객체의 position 위치에 끌기가 가능한 사각형을 만듭니다.

h = imrect(___,"PositionConstraintFcn",fcn)은 위치 제약 조건 함수 fcn을 사용하여 사각형을 끌어서 놓는 위치도 지정합니다.

입력 인수

모두 확장

부모 객체에 대한 핸들로, 핸들로 지정됩니다. 이 부모는 보통 axes 객체이지만, hggroup 객체의 부모일 수 있는 다른 객체가 될 수도 있습니다.

사각형의 위치로, 요소를 4개 가진 [xmin ymin width height] 형식의 벡터로 지정됩니다. 사각형의 최초 크기는 width×height이며, 사각형의 왼쪽 위 코너가 (x,y) 좌표(xmin,ymin)에 위치합니다.

위치 제약 조건 함수로, 함수 핸들로 지정됩니다. 마우스를 끌 때마다 fcn이 호출됩니다. 이 함수를 사용하여 타원을 끌어서 놓는 위치를 제어할 수 있습니다. 유효한 함수 핸들에 대한 자세한 내용은 setPositionConstraintFcn 함수의 도움말을 참조하십시오.

속성

모두 확장

ROI를 삭제할 수 있습니다. true 또는 false로 지정됩니다.

데이터형: logical

사용

대화형 방식 구문으로 imrect를 호출할 경우 포인터가 영상 위에서 십자 모양 으로 바뀝니다. 마우스를 사용하여 사각형을 만들과 크기와 위치를 조정할 수 있습니다. 사각형이 상황별 메뉴도 지원하므로 이 메뉴를 사용하여 모양과 동작의 특성을 제어할 수 있습니다. 상황별 메뉴에 액세스하려면 사각형을 마우스 오른쪽 버튼으로 클릭합니다.

Blue rectangle displayed over an image, with draggable points to resize the rectangle and a context menu that gives options to copy the position, set the color, fix the aspect ratio, or delete the rectangle.

다음 표에는 imrect가 지원하는 대화형 방식 동작이 나열되어 있습니다.

대화형 방식 동작설명
사각형 이동.포인터를 사각형 안으로 가져갑니다. 포인터가 십자형 화살표 로 바뀝니다. 마우스를 클릭한 후 끌어서 사각형을 이동합니다.
사각형의 크기 조정. 포인터를 사각형의 모서리 또는 코너 위로 이동합니다. 포인터 모양이 양방향 화살표 로 바뀝니다. 마우스로 모서리 또는 코너를 클릭한 후 끌어서 놓습니다.
사각형의 색 변경.포인터를 사각형 안으로 가져갑니다. 마우스 오른쪽 버튼을 클릭하고 상황별 메뉴에서 색 설정을 선택합니다.
현재 위치의 좌표 가져오기.포인터를 다각형 안으로 가져갑니다. 마우스 오른쪽 버튼을 클릭하고 상황별 메뉴에서 위치 복사를 선택합니다. imrect가 요소를 4개 가진 위치 벡터를 클립보드에 복사합니다.
대화형 방식으로 크기를 조정하는 동안 사각형의 현재 종횡비 유지. 포인터를 사각형 안으로 가져갑니다. 마우스 오른쪽 버튼을 클릭하고 상황별 메뉴에서 종횡비 고정을 선택합니다.
사각형 삭제.포인터를 사각형 안으로 또는 사각형의 모서리 위로 가져갑니다. 마우스 오른쪽 버튼을 클릭하고 상황별 메뉴에서 삭제를 선택합니다. 상황별 메뉴에서 이 옵션을 제거하려면 다음과 같이 Deletable 속성을 false로 설정하십시오. h = imrect(); h.Deletable = false;

setResizeable을 사용하여 사각형의 크기를 조정할 수 없게 하면 종횡비 고정 상황별 메뉴 항목이 제공되지 않습니다.

객체 함수

imrect 객체는 다양한 함수를 지원합니다. 전체 목록을 보려면 methods imrect라고 입력하십시오.

addNewPositionCallbackAdd new-position callback to ROI object
createMask(Not recommended) Create mask within image
delete핸들 객체 삭제
getColorGet color used to draw ROI object
getPositionReturn current position of ROI object
getPositionConstraintFcnReturn function handle to current position constraint function
removeNewPositionCallbackRemove new-position callback from ROI object
resume(Not recommended) Resume execution of MATLAB command line
setColor(Not recommended) Set color used to draw ROI object
setConstrainedPositionSet ROI object to new position
setFixedAspectRatioModePreserve aspect ratio when resizing ROI object
setPosition(Not recommended) Move ROI object to new position
setPositionConstraintFcnSet position constraint function of ROI object
setResizableSet resize behavior of ROI object
wait(Not recommended) Block MATLAB command line until ROI creation is finished

예제

모두 축소

영상 위에 사각형 ROI를 표시합니다. 제목에 사각형의 위치를 표시합니다. 사각형을 이동하면 제목이 업데이트됩니다. 사각형의 한쪽 변을 영상의 경계 바깥으로 끌어서 놓아보십시오.

imshow("cameraman.tif")
h = imrect(gca,[10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));

사각형을 영상의 원래 XLim, YLim 범위 내로 제한하려면 makeConstrainToRectFcn을 사용하여 위치 제약 조건 함수를 지정하십시오.

fcn = makeConstrainToRectFcn("imrect",get(gca,"XLim"),get(gca,"YLim"));
setPositionConstraintFcn(h,fcn);

이제 마우스를 사용하여 사각형을 끌어 보십시오. 사각형이 더 이상 영상 경계를 넘어 확장되지 않습니다.

마우스를 클릭하고 끌어서 놓는 대화형 방식으로 사각형을 배치합니다. MATLAB® 명령줄을 차단하려면 wait를 사용하십시오. MATLAB 명령줄 실행을 다시 시작하려면 사각형을 더블 클릭하십시오.

imshow("pout.tif");
h = imrect;
position = wait(h);

imrect에 image 객체를 포함한 좌표축을 사용하면서 위치 제약 조건 함수를 지정하지 않으면 영상 범위의 바깥으로 사각형을 끌어서 놓을 수 있습니다. plot 함수로 생성한 좌표축을 사용하면 좌표축 제한이 사각형의 이동에 맞춰 자동으로 확장됩니다.

버전 내역

R2006a 이전에 개발됨

모두 축소

R2018b: imrect는 권장되지 않음

R2018b부터 새로운 ROI 객체 세트가 기존 ROI 객체 세트를 대체합니다. 새 객체는 더 다양한 함수 기능(예: 면 색 투명도)을 제공합니다. 새 클래스는 ROI가 이동되거나 클릭되는 것과 같은 변경에 응답하기 위해 사용하는 이벤트도 지원합니다. 현재로서는 기존 ROI 객체를 제거할 계획이 없지만, 새로운 ROI로 바꿔 추가 기능 및 유연성의 이점을 누리십시오. 새 ROI 함수를 사용하여 ROI를 만드는 방법에 대한 자세한 내용은 ROI 형태 만들기 항목을 참조하십시오.

imrect ROI 객체 대신 새로운 Rectangle ROI 객체를 사용하십시오. ROI 생성 편의 함수 drawrectangle도 사용할 수 있습니다.

ROI 생성 코드 업데이트하기

imrect의 모든 인스턴스를 업데이트하십시오.

권장되지 않는 사용법권장되는 대체 방법

이 예제는 사각형 ROI를 만듭니다.

imshow("cameraman.tif");
h = imrect(gca,[10 10 100 150]);

이 예제는 동일한 코드에서 기존 ROI 객체를 새 ROI 객체로 대체한 것입니다. 이 예제에서는 ROI 생성 편의 함수를 사용합니다. 크기 및 위치 정보를 이름-값 인수로 지정해야 합니다.

imshow("cameraman.tif");
h = drawrectangle(gca,"Position",[10 10 100 150]);
기타 ROI 코드 업데이트하기

imrect ROI 객체의 객체 함수를 사용하는 코드를 모두 업데이트하십시오. 대개는 간단히 Rectangle ROI 객체 속성에 액세스하거나 그 값을 설정하는 방법으로 imrect 객체 함수에 대한 호출을 대체할 수 있습니다. 이를테면 getColor 또는 setColor 호출 대신 Color 속성을 사용합니다. 경우에 따라서는 imrect 객체 함수를 새 Rectangle ROI의 객체 함수로 대체해야 합니다. 각각의 imrect ROI 객체 함수에는 새 Rectangle ROI 객체로 마이그레이션하는 것에 대한 정보가 포함되어 있습니다. 마이그레이션 개요는 ROI Migration 항목을 참조하십시오.