imcrop

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

Описание

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

Примечание

Интерактивные синтаксисы не поддерживают категориальные изображения. Для категориальных изображений необходимо задать область обрезки, rect.

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

С этим синтаксисом и другими интерактивными синтаксисами, инструмент Crop Image блокирует MATLAB® командная строка, пока вы не завершаете операцию. Для получения дополнительной информации об использовании инструмента Crop Image смотрите Интерактивное Поведение.

пример

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

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

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

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

пример

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

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

пример

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

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

Задайте дополнительные Выходные опции

пример

[___,rectout] = imcrop(___) также возвращает положение прямоугольника обрезки в rectout. Можно использовать входные параметры любого другого синтаксиса.

[xrefout,yrefout,___] = imcrop(___) также возвращает пределы изображений входного изображения в xrefout и yrefout.

imcrop(___) без выходных аргументов отображает кадрированное изображение в новом окне рисунка. Этот синтаксис не поддерживает категориальные изображения.

Примеры

свернуть все

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

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')

Figure contains 2 axes objects. Axes object 1 with title Original Image contains an object of type image. Axes object 2 with title Cropped Image contains an object of type image.

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

targetSize = [300 600];

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

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

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

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')

Figure contains 2 axes objects. Axes object 1 with title Original Image contains an object of type image. Axes object 2 with title Cropped Image contains an object of type image.

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

свернуть все

Отобразите, чтобы быть обрезанными в виде одного из следующих.

  • m-by-n числовая матрица, представляющая полутоновое изображение

  • m-by-n-by-3 числовой массив, представляющий изображение истинного цвета

  • m-by-n логическая матрица, представляющая бинарную маску.

  • m-by-n категориальная матрица, представляющая изображение метки.

    Примечание

    Для категориального входа необходимо задать прямоугольник обрезки, rect. Интерактивные синтаксисы не поддерживают категориальный вход.

Когда вы используете интерактивный синтаксис, imcrop вызывает imshow функционируйте и принимает любые классы изображений imshow принимает.

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

Индексируемое изображение, которое будет обрезано в виде матрицы целых чисел.

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

Палитра сопоставила с индексируемым изображением XВ виде c-by-3 числовая матрица. Каждой строкой является трехэлементный триплет RGB, который задает красные, зеленые, и синие компоненты одного цвета палитры. Значения с типом данных single или double должен быть в области значений [0, 1].

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

Размер и положение прямоугольника обрезки в пространственных координатах в виде числового вектора с 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 - размерность в виде числового вектора с 2 элементами из формы [xmin xmax], где xmax больше xmin. Значение xref устанавливает изображение XData.

Отобразите пределы в мировых координатах вдоль y - размерность в виде числового вектора с 2 элементами из формы [ymin ymax], где ymax больше ymin. Значение yref устанавливает изображение YData.

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

свернуть все

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

  • Если вы указываете, что вход отображает I, затем выходное изображение имеет совпадающий тип данных как входное изображение.

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

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

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

Отобразите пределы в мировых координатах вдоль x - размерность, возвращенная как числовой вектор с 2 элементами из формы [xmin xmax]. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью xref, затем xrefout равно xref. В противном случае, xrefout равно оригинальному изображению XData.

Отобразите пределы в мировых координатах вдоль y - размерность, возвращенная как числовой вектор с 2 элементами из формы [ymin ymax]. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью yin, затем yrefout равно yin. В противном случае, yrefout равно оригинальному изображению 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