exponenta event banner

imcrop

Изображение обрезки

Описание

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

Примечание

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

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

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

пример

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

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-на-n числовая матрица, представляющая изображение в градациях серого

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

  • m-на-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.

Подробнее

свернуть все

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

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

Когда инструмент «Обрезка изображения» активен на рисунке, при перемещении по целевому изображению указатель изменяется на перекрестие. С помощью мыши можно указать прямоугольник подрезки, щелкнув и перетащив мышь. Можно переместить или изменить размер прямоугольника подрезки с помощью мыши. По завершении определения размера и позиционирования прямоугольника обрезки создайте обрезанное изображение, дважды щелкнув левой кнопкой мыши. Также в контекстном меню можно выбрать команду «Обрезка изображения». На рисунке показан инструмент «Обрезка изображения» с отображаемым контекстным меню.

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

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

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

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

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

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

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

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