Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

imlincomb

Combinación lineal de imágenes

Descripción

ejemplo

Z = imlincomb(K1,A1,K2,A2,...,Kn,An) calcula la combinación lineal de imágenes, , , ... , , con pesos , , ... , según:A1A2AnK1K2Kn

Z = K1*A1 + K2*A2 + ... + Kn*An

Opcionalmente, puede calcular la combinación lineal usar una GPU (requiere ).Parallel Computing Toolbox™

ejemplo

Z = imlincomb(K1,A1,K2,A2,...,Kn,An,K) añade un desplazamiento, , a la combinación lineal:K

Z = K1*A1 + K2*A2 + ... + Kn*An + K

ejemplo

Z = imlincomb(___,outputClass) especifica la clase de salida de .Z

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo.

I = imread('cameraman.tif');

Escale la imagen utilizando un coeficiente de 1,5 en la combinación lineal.

J = imlincomb(1.5,I);

Muestre la imagen original y la imagen procesada.

imshow(I)

figure imshow(J)

Lea una imagen en el espacio de trabajo.

I = imread('cameraman.tif');

Cree una copia filtrada de paso bajo de la imagen.

J = uint8(filter2(fspecial('gaussian'), I));

Busque la imagen de diferencia y cambie el valor cero a 128 utilizando una combinación lineal de y .IJ

K = imlincomb(1,I,-1,J,128); %K(r,c) = I(r,c) - J(r,c) + 128

Visualice la imagen de diferencia resultante.

imshow(K)

Lea dos imágenes en escala de grises en el espacio de trabajo.uint8

I = imread('rice.png'); J = imread('cameraman.tif');

Agregue las imágenes mediante una combinación lineal. Especifique la salida como tipo para evitar truncar el resultado.uint16

K = imlincomb(1,I,1,J,'uint16');

Muestre el resultado.

imshow(K,[])

En este ejemplo se muestra la diferencia entre anidar llamadas y usar combinaciones lineales al realizar una serie de operaciones aritméticas en imágenes. Para ilustrar cómo realiza todas las operaciones aritméticas antes de truncar el resultado, compare los resultados del cálculo del promedio de dos matrices y, utilizando funciones aritméticas anidadas y utilizando .imlincombXYimlincomb

Cree dos matrices.

X = uint8([ 255 0 75; 44 225 100]); Y = uint8([ 50 50 50; 50 50 50 ]);

Promediar las matrices mediante funciones aritméticas anidadas. Para calcular el promedio devuelto en , la función agrega 255 y 50 y trunca el resultado a 255 antes de pasarlo a .Z(1,1)imaddimdivide El promedio devuelto es de 128.Z(1,1)

Z = imdivide(imadd(X,Y),2)
Z = 2x3 uint8 matrix

   128    25    63
    47   128    75

Por el contrario, realiza la adición y la división con doble precisión y solo trunca el resultado final.imlincomb El promedio devuelto es de 153.Z2(1,1)

Z2 = imlincomb(.5,X,.5,Y)
Z2 = 2x3 uint8 matrix

   153    25    63
    47   138    75

Argumentos de entrada

contraer todo

Coeficientes de imagen, especificados como escalares numéricos.

Tipos de datos: double

Imágenes de entrada, especificadas como matrices numéricas del mismo tamaño y clase.

Desplazamiento, especificado como escalar numérico.

Tipos de datos: double

Clase de salida de , especificada como un vector escalar de cadena o de caracteres que contiene el nombre de una clase numérica.Z

Ejemplo: 'uint16'

Ejemplo: "double"

Argumentos de salida

contraer todo

Imagen combinada linealmente, devuelta como una matriz numérica del mismo tamaño que .A1 Si es , entonces es , de lo contrario tiene la misma clase que .A1logicalZdoubleZA1

Sugerencias

  • Al realizar una serie de operaciones aritméticas en un par de imágenes, puede lograr resultados más precisos si utiliza combinar las operaciones, en lugar de anidar llamadas a las funciones aritméticas individuales, como .imlincombimadd Cuando anida llamadas a las funciones aritméticas y las matrices de entrada son de una clase de enteros, cada función trunca y redondea el resultado antes de pasarlo a la siguiente función, perdiendo así la precisión en el resultado final. calcula cada elemento de la salida individualmente, en punto flotante de doble precisión.imlincombZ Si es una matriz de enteros, los elementos de clips que superan el intervalo del tipo entero y redondean los valores fraccionarios.ZimlincombZ

Capacidades ampliadas

Introducido antes de R2006a