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