Создайте перемещаемый прямоугольник
imrect
не рекомендуется. Используйте drawrectangle
вместо этого.
Объект imrect
инкапсулирует интерактивный прямоугольник по изображению.
Можно настроить размер и положение прямоугольника при помощи мыши. Прямоугольник также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации смотрите Использование.
h = imrect
h = imrect(hparent)
h = imrect(hparent,position)
h = imrect(___,Name,Value)
h = imrect
начинает интерактивное размещение прямоугольника на текущей системе координат и возвращает объект imrect
.
h = imrect(
начинает интерактивное размещение прямоугольника на объекте, заданном hparent
)hparent
.
h = imrect(___,
задает пары "имя-значение", которые управляют поведением прямоугольника.Name,Value
)
Когда вы вызываете imrect
с интерактивным синтаксисом, указатель изменяется на крест нитей когда по изображению. Можно создать прямоугольник и настроить его размер и положение с помощью мыши. Прямоугольник также поддерживает контекстное меню, которое можно использовать, чтобы управлять аспектами его внешнего вида и поведения. Щелкните правой кнопкой по прямоугольнику, чтобы получить доступ к этому контекстному меню.
Таблица приводит интерактивные поведения, поддержанные imrect
.
Интерактивное поведение | Описание |
---|---|
Перемещение прямоугольника. | Переместите указатель в прямоугольнике. Указатель изменяется на форму fleur. Перетащите мышь, чтобы переместить прямоугольник. |
Изменение размеров прямоугольника. | Переместите указатель через любое из ребер или углы прямоугольника, изменений формы в симметричной стрелке. Перетащите ребро или угол с помощью мыши. |
Изменение цвета прямоугольника. | Переместите указатель в прямоугольнике. Щелкните правой кнопкой и выберите Set Color из контекстного меню. |
Получение координат текущего положения | Переместите указатель в полигоне. Щелкните правой кнопкой и выберите Copy Position из контекстного меню. imrect копирует четырехэлементный радиус-вектор в буфер обмена. |
Сохраните текущее соотношение сторон прямоугольника во время интерактивного изменения размеров. | Переместите указатель в прямоугольнике. Щелкните правой кнопкой и выберите Fix Aspect Ratio из контекстного меню. |
Удаление прямоугольника | Переместите указатель в прямоугольнике или на ребре прямоугольника. Щелкните правой кнопкой и выберите Delete из контекстного меню. Чтобы удалить эту опцию из контекстного меню, установите свойство Deletable на ложь: h = imrect(); h.Deletable = false; |
Когда вы используете setResizeable
, чтобы сделать прямоугольник неизменяемого размера, элемент контекстного меню Fix Aspect Ratio не обеспечивается.
Каждый imrect
поддержка объектов много методов. Введите methods imrect
, чтобы видеть полный список.
addNewPositionCallback | Добавьте ново-позиционный коллбэк в объект ROI |
createMask | Создайте маску в изображении |
delete | Удалите объект указателя |
getColor | Доберитесь цвет раньше чертил объект ROI |
getPosition | Возвратите текущее положение объекта ROI |
getPositionConstraintFcn | Возвратите указатель на функцию в ограничительную функцию текущего положения |
removeNewPositionCallback | Удалите ново-позиционный коллбэк из объекта ROI |
resume | (Не рекомендуемый) выполнение Резюме командной строки MATLAB |
setColor | Выберите цвет, используемый, чтобы чертить объект ROI |
setConstrainedPosition | Установите объект ROI на новое положение |
setFixedAspectRatioMode | Сохраните соотношение сторон при изменении размеров объекта ROI |
setPosition | Переместите объект ROI в новое положение |
setPositionConstraintFcn | Установите ограничительную функцию положения объекта ROI |
setResizable | Установите поведение при изменении размера объекта ROI |
wait | (Не рекомендуемый), командная строка MATLAB Блока, пока создание ROI не закончено |
Отобразите прямоугольный ROI по изображению. Отобразите положение прямоугольника в заголовке. Заголовок обновляет, когда вы перемещаете прямоугольник. Попытайтесь перетащить одну сторону прямоугольника вне контура изображения.
imshow('cameraman.tif')
h = imrect(gca,[10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));
Задайте ограничительную функцию положения использование makeConstrainToRectFcn
, чтобы сохранить прямоугольник в исходном XLim
и областях значений YLim
изображения.
fcn = makeConstrainToRectFcn('imrect',get(gca,'XLim'),get(gca,'YLim')); setPositionConstraintFcn(h,fcn);
Теперь перетащите прямоугольник с помощью мыши. Заметьте, что прямоугольник больше не может расширять мимо границы изображения.
В интерактивном режиме поместите прямоугольник путем перетаскивания. Используйте wait
, чтобы блокировать командную строку MATLAB®. Дважды кликните на прямоугольнике, чтобы возобновить выполнение командной строки MATLAB.
imshow('pout.tif');
h = imrect;
position = wait(h);
Если вы используете imrect
с оси, который содержит объект изображения, и не задавайте ограничительную функцию положения, пользователи могут перетащить прямоугольник вне степени изображения. Когда используется с оси, созданные функцией plot
, пределы осей автоматически расширяются, чтобы разместить перемещение прямоугольника.
imellipse
| imfreehand
| imline
| impoint
| impoly
| imroi
| makeConstrainToRectFcn