Imagen transmitida por un canal y recuperada

En este apartado vamos a simular el envío y recepción de una imagen que transmitimos por un canal:

Para ello en Matlab,obtenemos una imagen, que seria la que vamos a enviar por el canal, le agregamos ruido que representaría la transmisión de la imagen por el canal y por ultimo filtraremos la imagen para poder recuperar la señal de la forma mas similar a la señal enviada:

Codigo:
 foto=imread('imagen.png');%obtenemos la señal
 figure,imshow(uint8(foto))
 foto=imnoise(foto,'salt & pepper');%añadimos ruido a la señal
 foto_R=foto(:,:,1);
 foto_G=foto(:,:,2);
 foto_B=foto(:,:,3);
 foto1(:,:,1)=foto_R;
 foto1(:,:,2)=foto_G;
 foto1(:,:,3)=foto_B;
 figure,imshow(uint8(foto1))
 filtro=1/9*[1 1 1;1 1 1;1 1 1];%creamos el filtro para poder recuperar la señal
 foto2_R=filter2(filtro,double(foto_R));%filtramos cada componente de la señal
 foto2_G=filter2(filtro,double(foto_G));
 foto2_B=filter2(filtro,double(foto_B));
 foto2(:,:,1)=foto2_R;
 foto2(:,:,2)=foto2_G;
 foto2(:,:,3)=foto2_B;
 imshow(uint8(foto))
 figure,imshow(uint8(foto2))

Resultados:
Primero representamos la señal enviada por el canal:
A continuación, añadimos ruido a la señal que simularía la transmisión de la imagen obteniendo:
Como vemos la imagen a perdido bastante calidad por lo que procedemos a aplicar el filtro:
Al convolucionar la señal con el filtro se obtiene la imagen representada anteriormente donde vemos que mejora un poco la calidad de la señal


No hay comentarios:

Publicar un comentario