imdistline

Описание

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

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

Создание

Описание

пример

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

h = imdistline(hparent) создает перемещаемый инструмент Distance на объекте, заданном hparent.

пример

h = imdistline(___,x,y) создает инструмент Distance с конечными точками в положениях, заданных 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.

Типы данных: логический

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

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

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

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

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

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

Примечание

Каждая функция, которая принимает imline также принимает imdistline. Эти объекты задают положение таким же образом.

Примеры

Вставьте инструмент расстояния в изображение

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

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

Конечные точки положения инструмента расстояния

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

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

Удалите инструмент Distance.

delete(h)

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

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

Смотрите также

| |

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