imdistline

Инструмент расстояния

Описание

Система координат imdistline объект инкапсулирует инструмент Distance, который состоит из интерактивной линии над изображением, в паре с текстовой меткой, которая отображает расстояние между конечными точками линии.

Размер и положение линии можно настроить при помощи мыши. У линия также есть контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации см. раздел Использование.

Создание

Описание

пример

h = imdistline создает инструмент «Расстояние» для текущей системы координат. Функция возвращается h, указатель на imdistline объект.

h = imdistline(hparent) создает перетаскиваемый инструмент «Расстояние» для объекта, заданного как hparent.

пример

h = imdistline(___,x,y) создает инструмент «Расстояние» с конечными точками в положениях, заданных x и y.

Входные параметры

расширить все

Указатель на родительский объект, заданный как указатель. Родительским элементом обычно является объект осей, но может также быть любой другой объект, который может быть родительским элементом an 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).

Свойства

расширить все

Информация только для чтения можно удалить, задав как true или false.

Типы данных: logical

Использование

Чтобы переместить инструмент «Расстояние», поместите указатель мыши над линией, форма изменится на fleur,. Кликните и перетащите линию мышью. Чтобы изменить размер инструмента «Расстояние», наведите указатель мыши на любую из конечных точек линии, форма изменяется на указательный палец. Щелкните мышью и перетащите конечную точку линии.

Линия также поддерживает контекстное меню, которое позволяет управлять различными аспектами ее функционирования и внешнего вида. Щелкните правой кнопкой мыши по линии для доступа к контекстному меню.

Поведение инструмента Distance ToolЭлемент контекстного меню
Экспорт данных о конечной точке и расстоянии в рабочую областьВыберите Export to Workspace из контекстного меню.
Включите/отключите метку расстояния.Выберите Show Distance Label из контекстного меню.
Задайте горизонтальные и вертикальные ограничения перетаскиванияВыберите Constrain Drag из контекстного меню.
Измените цвет, используемый для отображения линии.Выберите Set Color из контекстного меню.
Удалите объект инструмента DistanceВыберите Delete из контекстного меню.

Функции объекта

addNewPositionCallbackДобавьте коллбэк с новой позицией к объекту информация только для чтения
createMaskСоздайте маску в изображении
deleteУдалить указатель объекта
getAngleFromHorizontalУгол возврата между инструментом «Расстояние» и горизонтальной осью
getColorПолучите цвет, используемый для рисования объекта информация только для чтения
getDistanceРасстояние возврата между конечными точками инструмента «Расстояние»
getLabelHandleВозврат указателя на текстовую метку инструмента «Расстояние»
getLabelTextFormatterФормат возврата текстовой метки инструмента «Расстояние»
getLabelVisibleВозвращает видимость текстовой метки инструмента «Расстояние»
getPositionВозврат текущей позиции объекта информация только для чтения
getPositionConstraintFcnВозвращает указатель на функцию ограничения текущего положения
removeNewPositionCallbackУдалите коллбэк с новой позицией из объекта информация только для чтения
resume(Не рекомендуемый) Возобновить выполнение командной строки MATLAB
setColorУстановите цвет, используемый для рисования объекта информация только для чтения
setConstrainedPositionУстановите объект информация только для чтения в новое положение
setLabelTextFormatterУстановите формат, используемый для отображения текстовой метки инструмента «Расстояние»
setLabelVisibleУстановите видимость текстовой метки инструмента «Расстояние»
setPosition(Не рекомендуемый) Переместить объект информация только для чтения в новое положение
setPositionConstraintFcnУстановите функцию ограничения положения объекта информация только для чтения
wait(Не рекомендуемый) Блокируйте командную строку MATLAB до завершения создания информация только для чтения

Примеры

Вставка инструмента «Расстояние» в изображение

Вставьте инструмент «Расстояние» в изображение. Использование makeConstrainToRectFcn чтобы задать функцию ограничения перетаскивания, которая препятствует перетаскиванию инструмента «Расстояние» за пределы области изображения. Щелкните правой кнопкой мыши инструмент «Расстояние» и исследуйте опции контекстного меню.

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

Позиционирование конечных точек инструмента Distance Tool

Разместите конечные точки инструмента «Расстояние» в заданных местоположениях.

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

Удалите инструмент «Расстояние».

delete(h)

Используйте инструмент «Расстояние» с пространственными привязками

Используйте инструмент «Расстояние» с XData и YData связанного изображения в непиксельных модулях. Этот пример требует boston.tif изображение из программного обеспечения Mapping Toolbox™, которое включает материал, защищенный авторским правом 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');

Повторите процесс, но работайте с 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')

Преобразование XData и YData в счетчики с использованием коэффициента преобразования.

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

Задайте XData и YData изображения для отражения требуемых модулей.

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 с помощью оси, которая содержит объект изображения и не задает функцию ограничения перетаскивания, можно перетащить линию за пределы изображения. При использовании с осями, созданными plot функция, пределы осей автоматически расширяются, чтобы соответствовать перемещению линии.

  • Можно также использовать Line Объект информация только для чтения для создания интерактивного настраиваемого инструмента расстояния. Для получения примера смотрите Измерение расстояний в Изображение.

См. также

|

Представлено до R2006a