Main Content

imdistline

설명

imdistline 객체는 거리 툴을 캡슐화합니다. 이는 영상 위에 대화형 선이 있는 구성이며, 선 끝점 간의 거리를 표시하는 텍스트 레이블과 쌍을 이룹니다.

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

생성

설명

예제

h = imdistline은 현재 좌표축에 거리 툴을 만듭니다. 이 함수는 imdistline 객체에 대한 핸들인 h를 반환합니다.

h = imdistline(hparent)hparent로 지정된 객체에 끌기가 가능한 거리 툴을 만듭니다.

예제

h = imdistline(___,x,y)xy로 지정된 위치에 끝점이 있는 거리 툴을 만듭니다.

입력 인수

모두 확장

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

끝점의 x 좌표로, 요소를 2개 가진 숫자형 벡터로 지정됩니다.

예: h = imdistline(gca,[10 100],[20 40]);은 첫 번째 끝점을 (x, y) 좌표(10, 20)에, 두 번째 끝점을 좌표 (100, 40)에 설정합니다.

끝점의 y 좌표로, 요소를 2개 가진 숫자형 벡터로 지정됩니다.

예: h = imdistline(gca,[10 100],[20 40]);은 첫 번째 끝점을 (x, y) 좌표(10, 20)에, 두 번째 끝점을 좌표 (100, 40)에 설정합니다.

속성

모두 확장

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

데이터형: logical

사용

거리 툴을 이동하려면 선 위로 포인터를 가져가십시오. 형태가 십자형 으로 바뀝니다. 마우스로 선을 클릭하고 끌어서 놓습니다. 거리 툴의 크기를 조정하려면 선의 한 끝점 위로 포인터를 가져가십시오. 형태가 뭔가를 가리키는 손가락 으로 바뀝니다. 마우스로 선의 끝점을 클릭하고 끌어서 놓습니다.

Distance tool displaying a blue line over an image, with a label that indicates that the length of the line is 120.0 pixels.

이 선은 상황별 메뉴도 지원하므로 그 기능 및 모양의 여러 특성을 제어할 수 있습니다. 선을 마우스 오른쪽 버튼으로 클릭하여 상황별 메뉴에 액세스합니다.

거리 툴 동작상황별 메뉴 항목
끝점 및 거리 데이터를 작업 공간에 내보내기상황별 메뉴에서 작업 공간으로 내보내기를 선택합니다.
거리 레이블 설정/해제상황별 메뉴에서 거리 레이블 표시를 선택합니다.
가로 및 세로 끌어서 놓기 제한 지정상황별 메뉴에서 끌어서 놓기 제한을 선택합니다.
선을 표시하는 데 사용된 색 변경상황별 메뉴에서 색 설정을 선택합니다.
거리 툴 객체 삭제상황별 메뉴에서 삭제를 선택합니다.

객체 함수

addNewPositionCallbackAdd new-position callback to ROI object
createMask(Not recommended) Create mask within image
delete핸들 객체 삭제
getAngleFromHorizontalReturn angle between Distance tool and horizontal axis
getColorGet color used to draw ROI object
getDistanceReturn distance between endpoints of Distance tool
getLabelHandleReturn handle to text label of Distance tool
getLabelTextFormatterReturn format of text label of Distance tool
getLabelVisibleReturn visibility of text label of Distance tool
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
setLabelTextFormatterSet format used to display text label of Distance tool
setLabelVisibleSet visibility of text label of Distance tool
setPosition(Not recommended) Move ROI object to new position
setPositionConstraintFcnSet position constraint function of ROI object
wait(Not recommended) Block MATLAB command line until ROI creation is finished

예제

모두 축소

영상에 거리 툴을 삽입합니다. 거리 툴을 끌었을 때 영상 범위을 벗어난 바깥까지 늘어나지 않도록 하려면 makeConstrainToRectFcn을 사용하여 끌어서 놓기 제약 조건 함수를 지정하십시오. 거리 툴을 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴 옵션을 살펴봅니다.

imshow('pout.tif')
h = imdistline;
fcn = makeConstrainToRectFcn('imline',get(gca,'XLim'),get(gca,'YLim'));
setDragConstraintFcn(h,fcn);   

지정된 위치에 거리 툴의 끝점을 둡니다.

imshow('pout.tif')
h = imdistline(gca,[10 100],[10 100]);

거리 툴을 삭제합니다.

delete(h)

픽셀이 아닌 단위를 지정하여 연결된 영상의 XData, YData에 거리 툴을 사용합니다. 이 예제에서는 Mapping Toolbox™에서 제공하는 boston.tif 영상이 필요합니다. 이 소프트웨어는 GeoEye™의 저작물을 포함하며 모든 저작권은 GeoEye에게 있습니다.

start_row = 1478;
end_row = 2246;
meters_per_pixel = 1;
rows = [start_row meters_per_pixel end_row];
start_col = 349;
end_col = 1117;
cols = [start_col meters_per_pixel end_col];
img  = imread('boston.tif','PixelRegion',{rows,cols});
figure
hImg = imshow(img);
title('1 meter per pixel')

하버드 브릿지 위에 거리 툴의 최초 위치를 지정합니다.

hline = imdistline(gca,[271 471],[108 650]);
setLabelTextFormatter(hline,'%02.0f meters');

이 과정을 반복하되 1픽셀이 2미터로 샘플링된 영상으로 작업합니다. 동일한 거리가 구해지는지 확인합니다.

meters_per_pixel = 2;
rows = [start_row meters_per_pixel end_row];
cols = [start_col meters_per_pixel end_col];
img  = imread('boston.tif','PixelRegion',{rows,cols});
figure  
hImg = imshow(img);
title('2 meters per pixel')

변환 인자를 사용하여 XDataYData를 미터로 변환합니다.

XDataInMeters = get(hImg,'XData')*meters_per_pixel; 
YDataInMeters = get(hImg,'YData')*meters_per_pixel;

원하는 단위를 적용하려면 영상의 XDataYData를 설정하십시오.

set(hImg,'XData',XDataInMeters,'YData',YDataInMeters);    
set(gca,'XLim',XDataInMeters,'YLim',YDataInMeters);

하버드 브릿지 위에 거리 툴의 최초 위치를 지정합니다.

hline = imdistline(gca,[271 471],[108 650]);
setLabelTextFormatter(hline,'%02.0f meters');

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

  • Line ROI 객체를 사용하여 대화형 방식으로 사용자 지정 가능한 거리 툴을 만들 수도 있습니다. 예제는 Measure Distances in an Image 항목을 참조하십시오.

버전 내역

R2006a 이전에 개발됨

참고 항목

|