Инструмент Distance
imdistline
объект инкапсулирует инструмент Distance, который состоит из интерактивной линии по изображению, соединенному с текстовой меткой, которая отображает расстояние между конечными точками линии.
Можно настроить размер и положение линии при помощи мыши. Линия также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации смотрите Использование.
создает инструмент 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 не закончено |
Вставьте инструмент 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
функция, пределы осей автоматически расширяются, чтобы разместить перемещение линии.
Можно также использовать Line
Объект ROI создать интерактивный настраиваемый инструмент расстояния. Для примера смотрите Расстояния Меры в Изображении.