imcrop

Обрежьте изображение

Описание

J = imcrop создает интерактивный инструмент Crop Image, сопоставленный с изображением, отображенным в текущей фигуре. С этим синтаксисом и другими интерактивными синтаксисами, инструмент Crop Image блокирует командную строку MATLAB®, пока вы не завершаете операцию. imcrop возвращает кадрированное изображение, J.

Для получения дополнительной информации об использовании инструмента Crop Image смотрите Интерактивное Поведение.

пример

J = imcrop(I) отображает изображение I в окне рисунка и создает интерактивный инструмент Crop Image, сопоставленный с изображением. I может быть полутоновое изображение, изображение истинного цвета или логический массив.

Xout = imcrop(X,cmap) отображает индексируемое изображение X в фигуре, использующей палитру cmap, и создает интерактивный инструмент Crop Image, сопоставленный с тем изображением. imcrop возвращает обрезанное индексируемое изображение, J, который также имеет палитру cmap.

J = imcrop(h) создает интерактивный инструмент Crop Image, сопоставленный с изображением, заданным указателем h.

пример

J = imcrop(I,rect) обрезки изображение I согласно положению и размерностям, заданным в прямоугольнике обрезки rect или images.spatialref.Rectangle объект. Прямоугольник обрезки, rect, вектор формы [x, y, width, height] это задает размер и положение кадрированного изображения в пространственных координатах. Кадрированное изображение включает все пиксели во входное изображение, которые полностью или частично заключены прямоугольником.

Фактический размер выходного изображения не всегда соответствует точно ширине и высоте, заданной rect. Например, предположите rect [20 20 40 30], использование системы пространственной координаты по умолчанию. Левый верхний угол заданного прямоугольника является центром пикселя с пространственным (x, y) координаты (20,20). Правый нижний угол прямоугольника является центром пикселя с пространственным (x, y) координаты (60,50). Получившееся выходное изображение имеет размер 31 41 пиксели, не 30 40 пиксели.

C2 = imcrop(C,rect) обрезки категориальное изображение C согласно положению и размерностям, заданным в прямоугольнике обрезки rect, возврат обрезанного категориального изображения C2.

пример

Xout = imcrop(X,cmap,rect) обрезки индексируемое изображение X с палитрой cmap согласно положению и размерностям, заданным в прямоугольнике обрезки rect. Возвращает обрезанное индексируемое изображение X2.

J = imcrop(x,y,___) обрезки входное изображение с помощью системы координат не по умолчанию, где x и y задайте пределы изображений в системе мировой координаты.

пример

[J,rect2] = imcrop(___) возвращает положение прямоугольника кадрирования в rect2.

[x2,y2,___] = imcrop(___) также возвращает пределы изображений в x2 и y2.

Примеры

свернуть все

Считайте изображение в рабочую область.

I = imread('cameraman.tif');

Открытый инструмент Crop Image сопоставлен с этим изображением. Задайте переменную, в которой можно сохранить кадрированное изображение. Пример включает дополнительное возвращаемое значение rect в котором imcrop возвращает четырехэлементный радиус-вектор прямоугольника, который вы чертите.

[J, rect] = imcrop(I);

Когда вы перемещаете курсор через изображение, он превращается на крест нитей. Инструмент Crop Image блокирует командную строку MATLAB, пока вы не завершаете операцию.

Используя мышь, чертите прямоугольник по фрагменту изображения, которое вы хотите обрезать.

Выполните операцию обрезки путем двойного клика в прямоугольнике обрезки или выбора Crop Image в контекстном меню.

Инструмент Crop Image возвращает обрезанную область в возвращаемой переменной, J. Переменная rect четырехэлементный радиус-вектор, описывающий прямоугольник обрезки, который вы задали.

whos
Name        Size             Bytes  Class    Attributes

  I         256x256            65536  uint8              
  J         121x126            15246  uint8          
  rect        1x4                 32  double          

Считайте изображение в рабочую область.

I = imread('circuit.tif');

Обрежьте изображение, задав прямоугольник обрезки.

I2 = imcrop(I,[75 68 130 112]);

Отобразите оригинальное изображение и кадрированное изображение.

subplot(1,2,1)
imshow(I)
title('Original Image')
subplot(1,2,2)
imshow(I2)
title('Cropped Image')

Считайте и отобразите изображение.

I = imread('parkavenue.jpg');
imshow(I)

Задайте целевой размер окна как двухэлементный вектор формы [ширина, высота].

targetSize = [300 600];

Создайте Rectangle объект, который задает пространственную степень окна обрезки.

r = centerCropWindow2d(size(I),targetSize);

Обрежьте изображение до пространственных степеней. Отобразите обрезанную область.

J = imcrop(I,r);
imshow(J)

Загрузите индексированное изображение с его связанной картой в рабочую область.

load trees

Обрежьте индексированное изображение, задав прямоугольник обрезки.

X2 = imcrop(X,map,[30 30 50 75]);

Отобразите оригинальное изображение и кадрированное изображение.

subplot(1,2,1)
imshow(X,map)
title('Original Image')
subplot(1,2,2)
imshow(X2,map)
title('Cropped Image')

Входные параметры

свернуть все

Отобразите, чтобы быть обрезанными, заданными как числовой, логический, или категориальный массив. Если вы задаете rect как входной параметр, I может также быть логическим. В противном случае, imcrop вызовы imshow и принимает любые классы изображений imshow принимает.

Типы данных: single | double | int8 | int16 | uint8 | uint16 | logical

Индексируемое изображение, которое будет обрезано, заданное как массив целых чисел. Если вы задаете rect как входной параметр, затем I может также быть логическим. В противном случае, imcrop вызовы imshow и принимает любой класс изображений что imshow принимает.

Типы данных: single | double | int8 | int16 | uint8 | uint16 | logical

Палитра сопоставлена с индексируемым изображением, заданным как c-by-3 числовая матрица.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Категориальное изображение, заданное как m-by-n матрица категориальных данных.

Типы данных: categorical

Размер и положение прямоугольника обрезки в пространственных координатах, заданных как числовой вектор с 4 элементами формы [xmin ymin width height] или images.spatialref.Rectangle объект.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Введите изображение, заданное как указатель на фигуру, оси, uipanel, или объект растровой графики. Если h оси или указатель фигуры, imcrop использует первое изображение, возвращенное findobj(H,'Type','image').

Отобразите пределы в мировых координатах вдоль x - или y - размерность, заданная как числовой вектор с 2 элементами формы [min max]. Значения x и y установите изображение XData и YData. Тип данных x и y должен соответствовать.

Второй элемент x и y должен быть больше первого элемента. imcrop не поддерживает системы координат с инвертированными осями.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Кадрированное изображение, возвращенное как числовой массив.

  • Если вы задаете входное изображение, то выходное изображение имеет тот же класс как входное изображение.

  • Если вы не задаете входное изображение, то выходное изображение обычно имеет тот же класс как входное изображение. Однако, если входным изображением является int16 или single, затем выходным изображением является double.

Обрезанное категориальное изображение, возвращенное как категориальная матрица.

Обрезанное индексированное изображение, возвращенное как числовой массив.

Размер и положение прямоугольника обрезки, возвращенного как числовой вектор с 4 элементами формы [xmin ymin width height].

Отобразите пределы в x или направлении y, возвращенном как числовой вектор с 2 элементами формы [min max]. Если вы указываете, что изображение ограничивает x и y, затем x2 и y2 равны этим значениям. В противном случае, x2 и y2 равны оригинальному изображению XData и YData.

Больше о

свернуть все

Интерактивное поведение

Инструмент Crop Image является подвижным, прямоугольником изменяемого размера, который можно расположить над изображением и выполнить операцию обрезки в интерактивном режиме с помощью мыши.

Когда инструмент Crop Image активен в фигуре, изменениях указателя в кресте нитей, когда вы перемещаете его через целевое изображение. Используя мышь, вы задаете прямоугольник обрезки путем перетаскивания мыши. Можно переместить или изменить размер прямоугольника обрезки с помощью мыши. По окончании измерив и расположив прямоугольник обрезки, создаете кадрированное изображение путем двойного клика по левой кнопке мыши. Можно также выбрать Crop Image из контекстного меню. Следующая фигура иллюстрирует инструмент Crop Image с отображенным контекстным меню.

Интерактивное поведениеОписание
Удалите инструмент Crop Image.

Нажмите Backspace, Escape или Delete, или щелкните правой кнопкой в прямоугольнике обрезки и выберите Cancel из контекстного меню.

Примечание: Если вы удаляете ROI, функция возвращает пустые значения.

Измените размер инструмента Crop Image.Выберите любой из изменить размер указателей на прямоугольнике обрезки. Указатель превращается в двуглавую стрелу. Перетащите мышь, чтобы изменить размер прямоугольника обрезки.
Переместите инструмент Crop Image.Переместите указатель в контуре прямоугольника обрезки. Указатель превращается в форму fleur. Перетащите мышь, чтобы переместить прямоугольник через изображение.
Изменитесь цвет раньше отображал прямоугольник обрезки.Щелкните правой кнопкой в контуре прямоугольника обрезки и выберите Set Color из контекстного меню.
Обрежьте изображение.

Дважды кликните левую кнопку мыши или щелкните правой кнопкой в контуре прямоугольника обрезки и выберите Crop Image из контекстного меню.

Получите координаты прямоугольника обрезки.Щелкните правой кнопкой в контуре прямоугольника обрезки и выберите Copy Position из контекстного меню. imcrop копирует радиус-вектор с 4 элементами ([xmin ymin width height]) к буферу обмена.

Расширенные возможности

Представлено до R2006a