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

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