(Не рекомендуемый) Создать перетаскиваемый прямоугольник
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
функция, пределы осей автоматически расширяются, чтобы соответствовать перемещению прямоугольника.