exponenta event banner

imdistline

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

Описание

Один imdistline объект инкапсулирует инструмент «Расстояние», который состоит из интерактивной линии над изображением в паре с текстовой меткой, отображающей расстояние между конечными точками линии.

Можно настроить размер и положение линии с помощью мыши. Линия также имеет контекстное меню, которое управляет аспектами ее внешнего вида и поведения. Дополнительные сведения см. в разделе Использование.

Создание

Описание

пример

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

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

пример

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

Входные аргументы

развернуть все

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

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

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

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

Поведение инструмента «Расстояние»Пункт контекстного меню
Экспорт данных конечных точек и расстояний в рабочее пространствоВ контекстном меню выберите «Экспорт в рабочую область».
Включение/отключение метки расстояния.В контекстном меню выберите «Показать метку расстояния».
Задание зависимостей перетаскивания по горизонтали и вертикалиВыберите в контекстном меню команду «Ограничить перетаскиванием».
Измените цвет, используемый для отображения линии.В контекстном меню выберите «Задать цвет».
Удаление объекта инструмента «Расстояние»В контекстном меню выберите Удалить.

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

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

Примеры

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

Вставьте инструмент «Расстояние» в изображение. Использовать 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 ассоциированного изображения в непиксельных единицах. В этом примере требуется 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 Объект ROI для создания интерактивного настраиваемого инструмента расстояния. Пример см. в разделе Измерение расстояний на изображении.

См. также

|

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