(Не рекомендуемый) Создать перетаскиваемый прямоугольник
imrect не рекомендуется. Используйте новую Rectangle Вместо этого объект информация только для чтения. Вы также можете использовать новую функцию ROI удобства drawrectangle. Для получения дополнительной информации см. раздел Вопросов совместимости.
Система координат imrect объект инкапсулирует интерактивный прямоугольник над изображением.
Размер и положение прямоугольника можно настроить при помощи мыши. Прямоугольник также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации см. раздел Использование.
h = imrect начинает интерактивное размещение прямоугольника на текущей системе координат и возвращает imrect объект.
h = imrect( начинается интерактивное размещение прямоугольника на объекте, заданном hparent)hparent.
h = imrect(___, задает пары "имя-значение", которые управляют поведением прямоугольника.Name,Value)
Когда вы звоните imrect с интерактивным синтаксисом, указатель изменяется на перекрестие
при наведении изображения. Можно создать прямоугольник и настроить его размер и положение с помощью мыши. Прямоугольник также поддерживает контекстное меню, которое можно использовать для управления аспектами его внешнего вида и поведения. Щелкните правой кнопкой по прямоугольнику, чтобы получить доступ к этому контекстному меню.

В таблице перечислены интерактивные модели поведения, поддерживаемые imrect.
| Интерактивное поведение | Описание |
|---|---|
| Перемещение прямоугольника. | Переместите указатель в прямоугольник. Указатель изменяется на гибкую форму. |
| Изменение размера прямоугольника. | Наведите указатель мыши на любую из ребер или углов прямоугольника, форма изменяется на двойную стрелу. |
| Изменение цвета прямоугольника. | Переместите указатель в прямоугольник. Щелкните правой кнопкой мыши и выберите Set Color из контекстного меню. |
| Получение координат текущей позиции | Переместите указатель мыши внутрь многоугольника. Щелкните правой кнопкой мыши и выберите Copy Position из контекстного меню. imrect копирует вектор положения с четырьмя элементами в буфер обмена. |
| Сохраните текущее соотношение сторон прямоугольника во время интерактивного изменения размера. | Переместите указатель в прямоугольник. Щелкните правой кнопкой мыши и выберите Fix Aspect Ratio из контекстного меню. |
| Удаление прямоугольника | Переместите указатель в прямоугольник или на ребро прямоугольника. Щелкните правой кнопкой мыши и выберите Delete из контекстного меню. Чтобы удалить эту опцию из контекстного меню, установите Deletable свойство false: h = imrect(); h.Deletable = false; |
Когда вы используете setResizeable чтобы сделать прямоугольник несоизмеримым, Fix Aspect Ratio элемент контекстного меню не предусмотрен.
Каждый imrect объект поддерживает ряд функций. Тип methods imrect чтобы увидеть полный список.
addNewPositionCallback | Добавьте коллбэк с новой позицией к объекту информация только для чтения |
createMask | Создайте маску в изображении |
delete | Удалить указатель объекта |
getColor | Получите цвет, используемый для рисования объекта информация только для чтения |
getPosition | Возврат текущей позиции объекта информация только для чтения |
getPositionConstraintFcn | Возвращает указатель на функцию ограничения текущего положения |
removeNewPositionCallback | Удалите коллбэк с новой позицией из объекта информация только для чтения |
resume | (Не рекомендуемый) Возобновить выполнение командной строки MATLAB |
setColor | Установите цвет, используемый для рисования объекта информация только для чтения |
setConstrainedPosition | Установите объект информация только для чтения в новое положение |
setFixedAspectRatioMode | Сохраните соотношение сторон при изменении размера объекта информация только для чтения |
setPosition | (Не рекомендуемый) Переместить объект информация только для чтения в новое положение |
setPositionConstraintFcn | Установите функцию ограничения положения объекта информация только для чтения |
setResizable | Установите поведение изменения размера объекта информация только для чтения |
wait | (Не рекомендуемый) Блокируйте командную строку MATLAB до завершения создания информация только для чтения |
Отобразите прямоугольник информация только для чтения над изображением. Отображение положения прямоугольника в заголовке. Заголовок обновляется при перемещении прямоугольника. Попробуйте перетащить одну сторону прямоугольника за границу изображения.
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 функция, пределы осей автоматически расширяются, чтобы соответствовать перемещению прямоугольника.