Contenido principal

imcrop

Recortar una imagen

Descripción

Recortar una imagen de forma interactiva

Nota

Las sintaxis interactivas no son compatibles con las imágenes categóricas. Para estas imágenes categóricas, debe especificar el área de recorte, rect.

Icropped = imcrop crea una herramienta interactiva Crop Image para recortar la imagen en escala de grises, en color verdadero o binaria que se muestra en la figura actual. imcrop devuelve la imagen recortada, Icropped.

Con esta sintaxis y las otras sintaxis interactivas, la herramienta Crop Image bloquea la línea de comandos de MATLAB® hasta que se complete la operación. Para obtener más información sobre la herramienta Crop Image, consulte Comportamiento interactivo.

Icropped = imcrop(I) muestra la imagen en escala de grises, en color verdadero o binaria I en una ventana de figura y crea una herramienta interactiva Crop Image para recortar la imagen.

ejemplo

Xcropped = imcrop(X,cmap) muestra la imagen indexada X en una figura utilizando el mapa de colores cmap y crea una herramienta interactiva Crop Image para recortar la imagen. imcrop devuelve la imagen indexada recortada, Xcropped, que también tiene el mapa de colores cmap.

___ = imcrop(h) crea una herramienta interactiva Crop Image para recortar la imagen en el objeto de gráficas h.

Recortar una imagen especificando el área de recorte

Icropped = imcrop(I,rect) recorta la imagen I según la posición y las dimensiones especificadas en el rectángulo de recorte rect. La imagen recortada incluye todos los píxeles de la imagen de entrada que están total o parcialmente delimitados por el rectángulo.

El tamaño real de la imagen de salida no siempre corresponde exactamente con la anchura y la altura especificadas por rect. Por ejemplo, supongamos que rect es [20 20 40 30], usando el sistema de coordenadas espaciales predeterminado. La esquina superior izquierda del rectángulo especificado es el centro del píxel con las coordenadas espaciales (x,y) (20,20). La esquina inferior derecha del rectángulo es el centro del píxel con las coordenadas espaciales (x,y) (60,50). El tamaño de la imagen de salida resultante es de 31 por 41 píxeles, no de 30 por 40 píxeles.

ejemplo

Xcropped = imcrop(X,cmap,rect) recorta la imagen indexada X con el mapa de colores cmap según la posición y las dimensiones especificadas en el rectángulo de recorte rect. imcrop devuelve la imagen indexada recortada, Xcropped, que también tiene el mapa de colores cmap.

ejemplo

___ = imcrop(xref,yref,___) recorta la imagen de entrada usando el sistema de coordenadas mundial definido por xref y yref. Después de los argumentos de entrada xref y yref, puede especificar los argumentos de cualquier sintaxis que incluya una imagen de entrada I o X.

Especificar opciones de salida adicionales

[___,rectout] = imcrop(___) también devuelve la posición del rectángulo de recorte en rectout. Puede utilizar los argumentos de entrada de cualquier otra sintaxis.

ejemplo

[xrefout,yrefout,___] = imcrop(___) también devuelve los límites de imagen de la imagen de entrada en xrefout y yrefout.

imcrop(___) sin argumentos de salida muestra la imagen recortada en una nueva ventana de figura. Esta sintaxis no es compatible con las imágenes categóricas.

Ejemplos

contraer todo

Lea una imagen en el área de trabajo.

I = imread('llama.jpg');

Abra la herramienta Crop Image asociada a esta imagen. Especifique una variable en la que almacenar la imagen recortada. En el ejemplo se incluye el valor devuelto opcional rect en el que imcrop devuelve el vector de posición de cuatro elementos del rectángulo que se dibuja.

[J,rect] = imcrop(I);

CropImageUsingCropImage InteractiveToolExample_01.png

Al mover el cursor por la imagen, cambia a una cruz. La herramienta Crop Image bloquea la línea de comandos hasta que se complete la operación.

Utilice el ratón para dibujar un rectángulo sobre la parte de la imagen que desea recortar. Realice la operación de recorte haciendo doble clic en el rectángulo de recorte o seleccionando Crop Image (Recortar imagen) en el menú contextual.

CropImageUsingCropImage InteractiveToolExample_02.png

La imagen recortada aparece en la ventana de figura.

CropImageUsingCropImage InteractiveToolExample_03.png

La herramienta Crop Image devuelve el área recortada en la variable devuelta, J. La variable rect es el vector de posición de cuatro elementos que describe el rectángulo de recorte que se ha especificado. Obtenga información sobre las variables devueltas.

whos
  Name        Size                  Bytes  Class     Attributes

  I         876x1314x3            3453192  uint8               
  J         413x483x3              598437  uint8               
  rect        1x4                      32  double              

Lea una imagen en el área de trabajo.

I = imread('circuit.tif');

Recorte la imagen especificando el rectángulo de recorte.

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

Muestre la imagen original y la imagen recortada.

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

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

Lea y muestre una imagen.

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

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

Especifique el tamaño de una ventana de destino como un vector de dos elementos de la forma [anchura, altura].

targetSize = [300 600];

Cree un objeto Rectangle que especifique la extensión espacial de la ventana de recorte.

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

Recorte la imagen según las extensiones espaciales. Muestre la región recortada.

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

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

Cargue una imagen indexada X con su mapa de colores asociado map en el área de trabajo.

load trees

Recorte la imagen indexada especificando el rectángulo de recorte.

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

Muestre la imagen indexada original y la imagen recortada, ambas con el mapa de colores.

tiledlayout(1,2)
nexttile
imshow(X,map)
title("Original Image")
nexttile
imshow(X2,map)
title("Cropped Image")

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

Argumentos de entrada

contraer todo

Imagen que se desea recortar, especificada como una de los siguientes:

  • Matriz numérica de m por n que representa una imagen en escala de grises.

  • Arreglo numérico de m por n por 3 que representa una imagen en color verdadero.

  • Matriz lógica de m por n que representa una máscara binaria.

  • Matriz categórica de m por n que representa una imagen de la etiqueta.

    Nota

    Para la entrada categórica, debe especificar un rectángulo de recorte, rect. Las sintaxis interactivas no son compatibles con la entrada categórica.

Cuando utiliza una sintaxis interactiva, imcrop llama a la función imshow y acepta cualquiera de las clases de imagen que imshow acepta.

Tipos de datos: single | double | int8 | int16 | uint8 | uint16 | logical | categorical

Imagen indexada que se desea recortar, especificada como una matriz de enteros.

Tipos de datos: single | double | int8 | int16 | uint8 | uint16 | logical

Mapa de colores asociado a la imagen indexada X, especificado como una matriz numérica de c por 3. Cada fila es un triplete RGB que especifica los componentes rojo, verde y azul de un único color del mapa de colores. Los valores con el tipo de datos single o double deben estar en el intervalo [0, 1].

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Tamaño y posición del rectángulo de recorte en coordenadas espaciales, especificados como un vector numérico de 4 elementos de la forma [xmin ymin width height] o un objeto images.spatialref.Rectangle.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Objeto de gráficas que contiene la imagen que se desea recortar, especificado como objeto Figure, Panel, Axes o Image. Si h es un eje o una figura, impixelregion utiliza la primera imagen devuelta por findobj(h,Type="image").

Límites de la imagen en coordenadas mundiales a lo largo de la dimensión x, especificados como un vector numérico de 2 elementos de la forma [xmin xmax] donde xmax es mayor que xmin. El valor de xref establece los XData de la imagen.

Límites de la imagen en coordenadas mundiales a lo largo de la dimensión y, especificados como un vector numérico de 2 elementos de la forma [ymin ymax] donde ymax es mayor que ymin. El valor de yref establece los YData de la imagen.

Argumentos de salida

contraer todo

Imagen recortada, devuelta como un arreglo numérico, una matriz numérica, una matriz lógica o una matriz categórica.

  • Si especifica una imagen de entrada I, la imagen de salida contiene el mismo tipo de datos que la imagen de entrada.

  • Si no especifica una imagen de entrada, normalmente la imagen de salida contiene el mismo tipo de datos que la imagen de entrada. Sin embargo, si la imagen de entrada contiene el tipo de datos int16 o single, la imagen de salida contiene el tipo de datos double.

Imagen indexada recortada, devuelta como una matriz numérica.

Tamaño y posición del rectángulo de recorte, devuelto como un vector numérico de 4 elementos de la forma [xmin ymin width height].

Límites de la imagen en coordenadas mundiales a lo largo de la dimensión x, devueltos como un vector numérico de 2 elementos de la forma [xmin xmax]. Si especifica los límites de la imagen en un sistema de coordenadas mundiales usando xref, xrefout es igual a xref. En caso contrario, xrefout es igual a XData de la imagen original.

Límites de la imagen en coordenadas mundiales a lo largo de la dimensión y, devueltos como un vector numérico de 2 elementos de la forma [ymin ymax]. Si especifica los límites de la imagen en un sistema de coordenadas mundiales usando yin, yrefout es igual a yin. En caso contrario, yrefout es igual a YData de la imagen original.

Más acerca de

contraer todo

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo