imcrop

Обрезка изображения

Описание

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

Примечание

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

Icropped = imcrop создает интерактивный инструмент «Обрезка изображения», сопоставленный с полутоновым, труколорным или бинарным изображением, отображаемым на текущей фигуре. imcrop возвращает обрезанное изображение, Icropped.

С помощью этого синтаксиса и других интерактивных синтаксисов инструмент Crop Image блокирует MATLAB® командная строка до завершения операции. Дополнительные сведения об использовании инструмента «Обрезка изображения» см. в разделе «Интерактивное поведение».

пример

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

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

___ = imcrop(h) создает интерактивный инструмент «Обрезка изображения», сопоставленный с изображением, заданным указателем на 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');

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

[J,rect] = imcrop(I);

При наведении курсора на изображение оно меняется на перекрестие. Инструмент «Обрезка изображения» блокирует командную строку MATLAB до завершения операции.

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

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

Инструмент «Обрезать изображение» возвращает обрезанную область от переменной возврата, 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. Axes 1 with title Original Image contains an object of type image. Axes 2 with title Cropped Image contains an object of type image.

Чтение и отображение изображения.

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

Figure contains an axes. The axes 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. The axes 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. Axes 1 with title Original Image contains an object of type image. Axes 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 из контекстного меню. Рисунок иллюстрирует инструмент обрезки изображения с отображаемым контекстным меню.

Интерактивное поведениеОписание
Удалите инструмент «Обрезать изображение».

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

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

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

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

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

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

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