Main Content

imfuse

Composición de dos imágenes

Descripción

ejemplo

C = imfuse(A,B) crea una imagen compuesta a partir de dos imágenes, A y B. Si A y B son de diferente tamaño, imfuse rellena con ceros las dimensiones más pequeñas para que las dos imágenes tengan el mismo tamaño. La salida, C, es una matriz numérica que contiene una versión fusionada de las imágenes A y B.

ejemplo

[C RC] = imfuse(A,RA,B,RB) crea una imagen compuesta a partir de dos imágenes, A y B, utilizando la información de referencia espacial que proporcionan RA y RB. La salida RC define la información de referencia espacial para la imagen fusionada de salida C.

ejemplo

C = imfuse(___,method) utiliza el algoritmo que especifica method.

ejemplo

C = imfuse(___,Name,Value) especifica opciones adicionales con uno o más argumentos de nombre-valor utilizando cualquiera de las sintaxis anteriores.

Ejemplos

contraer todo

Cargue una imagen en el espacio de trabajo. Cree una copia con el desplazamiento de rotación aplicado.

A = imread('cameraman.tif');
B = imrotate(A,5,'bicubic','crop');

Cree una superposición mezclada, escalando los valores de intensidad de A y B a la vez como un único conjunto de datos. Visualice la imagen funsionada.

C = imfuse(A,B,'blend','Scaling','joint');
imshow(C)

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

Guarde la imagen resultante como un archivo .png.

imwrite(C,'my_blend_overlay.png');

Cargue una imagen en el espacio de trabajo. Cree una copia y aplique el desplazamiento de rotación.

A = imread('cameraman.tif');
B = imrotate(A,5,'bicubic','crop');

Cree una imagen superpuesta mezclada, utilizando el rojo para la imagen A, el verde para la imagen B y el amarillo para las zonas de intensidad similar entre las dos imágenes. A continuación, muestre la imagen superpuesta.

C = imfuse(A,B,'falsecolor','Scaling','joint','ColorChannels',[1 2 0]);
imshow(C)

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

Guarde la imagen resultante como un archivo .png.

imwrite(C,'my_blend_red-green.png');

Cargue una imagen en el espacio de trabajo y cree un objeto de referencia especial asociado a ella.

A = dicomread('knee1.dcm');
RA = imref2d(size(A));

Cree una segunda imagen cambiando el tamaño de la imagen A y cree un objeto de referencia espacial asociado a esa imagen.

B = imresize(A,2);
RB = imref2d(size(B));

Establezca los parámetros del objeto de referencia para especificar los límites de las coordenadas en coordenadas mundiales.

RB.XWorldLimits = RA.XWorldLimits;
RB.YWorldLimits = RA.YWorldLimits;

Cree una imagen de superposición mezclada utilizando el color para indicar las áreas de intensidad similar. Este ejemplo utiliza el rojo para la imagen A, el verde para la imagen B y el amarillo para las zonas de intensidad similar entre las dos imágenes.

C = imfuse(A,B,'falsecolor','Scaling','joint','ColorChannels',[1 2 0]);

Muestre la imagen fusionada. Observe cómo las imágenes no parecen compartir muchas zonas de intensidad similar. En este ejemplo, la imagen fusionada se ha reducido para facilitar su visualización.

C = imresize(C,0.5);
imshow(C)

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

Cree una nueva imagen fusionada, esta vez utilizando la información de referencia espacial en RA y RB.

[D,RD] = imfuse(A,RA,B,RB,'ColorChannels',[1 2 0]);

Muestre la nueva imagen fusionada. En esta versión, la imagen aparece en amarillo porque las imágenes A y B tienen la misma extensión en el sistema de coordenadas mundial. Las imágenes están realmente alineadas, aunque B es el doble de grande que A. En este ejemplo, la imagen fusionada se ha reducido para facilitar su visualización.

D = imresize(D,0.5);
imshow(D)

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

Argumentos de entrada

contraer todo

Primera imagen que se desea combinar en la imagen compuesta, especificada como una imagen en escala de grises, en color verdadero o binaria.

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

Segunda imagen que se desea combinar en la imagen compuesta, especificada como una imagen en escala de grises, en color verdadero o binaria.

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

Información de referencia espacial asociada a la imagen de entrada A, especificada como un objeto imref2d.

Información de referencia espacial asociada a la imagen de entrada B, especificada como un objeto imref2d.

Algoritmo utilizado para combinar imágenes, especificado con uno de los siguientes valores.

MétodoDescripción
"falsecolor"Crea una imagen RGB compuesta que muestra A y B superpuestas en diferentes bandas de color. Las regiones grises de la imagen compuesta muestran las zonas en las que las dos imágenes tienen la misma intensidad. Las regiones magenta y verde muestran las zonas en las que la intensidad es diferente. Este es el método utilizado por defecto.
"blend"Superpone A y B con composición alfa.
"checkerboard"Crea una imagen con regiones rectangulares alternas a partir de A y B.
"diff"Crea una imagen de diferencia a partir de A y B.
"montage"Coloca A y B una junto a la otra en la misma imagen.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: C = imfuse(A,B,Scaling="joint") escala los valores de intensidad de A y B a la vez como un único conjunto de datos.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: C = imfuse(A,B,"Scaling","joint") escala los valores de intensidad de A y B a la vez como un único conjunto de datos.

Opción de escalado de intensidad, especificada como uno de los siguientes valores:

"independent"Escala los valores de intensidad de A y B de manera independiente cuando se crea C.
"joint"Escala los valores de intensidad de las imágenes a la vez como si estuvieran juntas en la misma imagen. Esta opción es útil cuando se visualizan registros de imágenes monomodales, en los que una imagen contiene valores de relleno que se salen del rango dinámico de la otra imagen.
"none"No hay escalado adicional.

Canal de color de salida para cada imagen de entrada, especificado como uno de los siguientes valores:

[R G B]Un vector de tres elementos que especifica a qué imagen asignar los canales rojo, verde y azul. Los valores R, G y B deben ser 1 (para la primera imagen de entrada), 2 (para la segunda imagen de entrada) y 0 (para ninguna imagen).
"red-cyan"Un atajo para el vector [1 2 2], que es adecuado para anaglifos estéreo de cian/rojo.
"green-magenta"Un atajo para el vector [2 1 2], que es una opción de alto contraste, ideal para las personas con diferentes tipos de daltonismo.

Argumentos de salida

contraer todo

Imagen fusionada que es una composición de las imágenes de entrada, devuelta como una imagen en escala de grises, en color verdadero o binaria.

Tipos de datos: uint8

Información de referencia espacial asociada a la imagen fusionada C, devuelta como un objeto imref2d.

Sugerencias

  • Utilice imfuse para crear visualizaciones compuestas que pueda guardar en un archivo. Utilice imshowpair para mostrar visualizaciones compuestas en la pantalla.

  • Cuando se especifica la información de referencia espacial RA y RB, imfuse combina los objetos de referencia de entrada y obtiene un cuadro delimitador que contiene los límites mundiales de ambas imágenes. Cuando el cuadro delimitador total da lugar a dimensiones de píxeles no enteras en coordenadas mundiales, la imagen fusionada puede tener filas o columnas adicionales de píxeles negros. La distorsión se produce porque imfuse muestrea las imágenes originales según una extensión de píxeles reducida.

Historial de versiones

Introducido en R2012a

Consulte también

| | |