Инструмент «Расстояние»
Один imdistline объект инкапсулирует инструмент «Расстояние», который состоит из интерактивной линии над изображением в паре с текстовой меткой, отображающей расстояние между конечными точками линии.
Можно настроить размер и положение линии с помощью мыши. Линия также имеет контекстное меню, которое управляет аспектами ее внешнего вида и поведения. Дополнительные сведения см. в разделе Использование.
создает инструмент «Расстояние» на текущих осях. Функция возвращает h = imdistlineh, дескриптор к imdistline объект.
создает перетаскиваемый инструмент «Расстояние» на объекте, указанном h = imdistline(hparent)hparent.
Чтобы переместить инструмент «Расстояние», наведите указатель на линию, форма изменится на флер.
Щелкните и перетащите линию с помощью мыши. Чтобы изменить размер инструмента «Расстояние», переместите указатель на любую из конечных точек линии, форма изменится на указывающий палец,.
Щелкните и перетащите конечную точку линии с помощью мыши.

Линия также поддерживает контекстное меню, которое позволяет управлять различными аспектами его функционирования и внешнего вида. Щелкните правой кнопкой мыши строку, чтобы открыть контекстное меню.
| Поведение инструмента «Расстояние» | Пункт контекстного меню |
|---|---|
| Экспорт данных конечных точек и расстояний в рабочее пространство | В контекстном меню выберите «Экспорт в рабочую область». |
| Включение/отключение метки расстояния. | В контекстном меню выберите «Показать метку расстояния». |
| Задание зависимостей перетаскивания по горизонтали и вертикали | Выберите в контекстном меню команду «Ограничить перетаскиванием». |
| Измените цвет, используемый для отображения линии. | В контекстном меню выберите «Задать цвет». |
| Удаление объекта инструмента «Расстояние» | В контекстном меню выберите Удалить. |
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 для создания интерактивного настраиваемого инструмента расстояния. Пример см. в разделе Измерение расстояний на изображении.