Создайте перемещаемый прямоугольник
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