Инструмент Distance
Объект imdistline
является типом imline
, который инкапсулирует инструмент Distance, который состоит из интерактивной строки по изображению, соединенному с текстовой меткой, которая отображает расстояние между конечными точками строки.
Можно настроить размер и положение строки при помощи мыши. Строка также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации смотрите Использование.
h = imdistline
h = imdistline(hparent)
h = imdistline(___,x,y)
создает инструмент Distance на текущей системе координат. Функция возвращает h
= imdistlineh
, указатель на объект imdistline
.
создает перемещаемый инструмент Distance на объекте, заданном h
= imdistline(hparent
)hparent
.
Чтобы переместить инструмент 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
, пределы осей автоматически расширяются, чтобы разместить перемещение строки.