Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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.

ejemplo

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.

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

ejemplo

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.

___ = 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

ejemplo

[___,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.

[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 espacio 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 espacio 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. 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.

Lea y muestre una imagen.

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

Figure contains an axes object. The 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 axes object contains an object of type image.

Cargue una imagen indexada con su mapa asociado en el espacio 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 original y la imagen recortada.

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.

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

Comportamiento interactivo

La herramienta Crop Image es un rectángulo que se puede mover y cambiar de tamaño, el cual puede colocar sobre la imagen y llevar a cabo la operación de recortar interactivamente con el ratón.

Cuando la herramienta Crop Image está activa en una figura, el puntero cambia a una cruz al moverlo por la imagen de destino. Haga clic y arrastre el ratón para especificar el rectángulo de recorte. Puede mover o cambiar el tamaño del rectángulo de recorte con el ratón. Cuando haya terminado de cambiar el tamaño o situar el rectángulo de recorte, cree la imagen recortada haciendo doble clic con el botón principal del ratón. También puede elegir Crop Image en el menú contextual. La figura ilustra la herramienta Crop Image mostrando el menú contextual.

Crop Image tool displaying a blue rectangle over the region to be cropped and a context menu with options such as "set color" and "fix aspect ratio".

Comportamiento interactivoDescripción
Eliminar la herramienta Recortar imagen.

Pulse las teclas Retroceso, Esc o Supr o haga clic con el botón secundario dentro del rectángulo de recorte y seleccione Cancel en el menú contextual.

Nota: Si elimina la ROI, la función devuelve valores vacíos.

Cambiar el tamaño de la herramienta Crop Image.Seleccione cualquier identificador de cambio de tamaño en el rectángulo de recorte. El puntero cambia a una flecha de doble punta . Haga clic y arrastre con el ratón para cambiar el tamaño del rectángulo deseado.
Desplazar la herramienta Crop Image.Desplace el puntero dentro del límite del rectángulo de recorte. El puntero cambia a una forma de flor . Haga clic y arrastre con el ratón para mover el rectángulo por la imagen.
Cambiar el color usado para visualizar el rectángulo de recorte.Haga clic con el botón secundario dentro del límite del rectángulo de recorte y seleccione Set Color en el menú contextual.
Recortar la imagen.

Haga doble clic con el botón principal del ratón o haga clic con el botón secundario dentro del límite del rectángulo de recorte y seleccione Crop Image en el menú contextual.

Recuperar las coordenadas del rectángulo de recorte.Haga clic con el botón secundario dentro del límite del rectángulo de recorte y seleccione Copy Position en el menú contextual. imcrop copia un vector de posición de 4 elementos ([xmin ymin width height]) en el portapapeles.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo