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.

Eliminar ruido de imagen de color mediante la red neuronal Preentrenada

Este ejemplo muestra cómo eliminar el ruido Gaussiano de una imagen RGB. Divida la imagen en canales de color separados y, a continuación, elimine cada canal mediante una red neuronal de eliminación de ruido preentrenada, DnCNN.

Leer una imagen en color en el espacio de trabajo y convertir los datos a.double Visualice la imagen de color prístina.

pristineRGB = imread('lighthouse.png'); pristineRGB = im2double(pristineRGB); imshow(pristineRGB) title('Pristine Image')

Agregue el ruido blanco Gaussiano de media cero con una varianza de 0,01 a la imagen. añade ruido a cada canal de color de forma independiente.imnoise Visualice la imagen de color ruidoso.

noisyRGB = imnoise(pristineRGB,'gaussian',0,0.01); imshow(noisyRGB) title('Noisy Image')

Divida la imagen RGB ruidosa en sus canales de color individuales.

noisyR = noisyRGB(:,:,1); noisyG = noisyRGB(:,:,2); noisyB = noisyRGB(:,:,3);

Cargue la red de DnCNN preentrenada.

net = denoisingNetwork('dncnn');

Utilice la red DnCNN para eliminar el ruido de cada canal de color.

denoisedR = denoiseImage(noisyR,net); denoisedG = denoiseImage(noisyG,net); denoisedB = denoiseImage(noisyB,net);

Recombina los canales de color denozado para formar la imagen RGB denozada. Visualice la imagen de color denozado.

denoisedRGB = cat(3,denoisedR,denoisedG,denoisedB); imshow(denoisedRGB) title('Denoised Image')

Calcule la relación señal-ruido (PSNR) máxima para las imágenes ruidosas y denozadas. Un PSNR más grande indica que el ruido tiene una señal relativa más pequeña, y se asocia a una calidad de imagen más alta.

noisyPSNR = psnr(noisyRGB,pristineRGB); fprintf('\n The PSNR value of the noisy image is %0.4f.',noisyPSNR);
 The PSNR value of the noisy image is 20.6395. 
denoisedPSNR = psnr(denoisedRGB,pristineRGB); fprintf('\n The PSNR value of the denoised image is %0.4f.',denoisedPSNR);
 The PSNR value of the denoised image is 29.6857. 

Calcule el índice de similitud estructural (SSIM) para las imágenes ruidosas y denozadas. Un índice SSIM cercano a 1 indica un buen acuerdo con la imagen de referencia y una mayor calidad de imagen.

noisySSIM = ssim(noisyRGB,pristineRGB); fprintf('\n The SSIM value of the noisy image is %0.4f.',noisySSIM);
 The SSIM value of the noisy image is 0.7393. 
denoisedSSIM = ssim(denoisedRGB,pristineRGB); fprintf('\n The SSIM value of the denoised image is %0.4f.',denoisedSSIM);
 The SSIM value of the denoised image is 0.9507. 

En la práctica, los canales de color de imagen con frecuencia tienen ruido correlacionado. Para eliminar el ruido de imagen correlacionado, primero convierta la imagen RGB en un espacio de color con un canal de luminancia, como el espacio de color L * a * b *. Quite el ruido sólo en el canal de luminancia y convierta la imagen denozada de nuevo al espacio de color RGB.

Consulte también

| | | | | |

Temas relacionados