Experimento 4 Aprimoramento de domínio de frequência de imagem e restauração de imagem (processamento digital de imagem)

Experimento 4: aprimoramento do domínio de frequência de imagem e restauração de imagem

1. Significado e propósito experimental

(1) Dominar ainda mais a ferramenta de processamento de imagem Matlab e familiarizar-se com as funções de processamento de imagem baseadas em Matlab.

(2) Dominar vários métodos de aprimoramento no domínio da frequência da imagem baseados na transformação ortogonal.

(3) Dominar os métodos básicos de restauração de imagens.

2. Conteúdo experimental

Com base nas funções anteriores, as seguintes funções:

       1. Para uma imagem com ruído, execute filtragem passa-baixa ideal, filtragem passa-baixa Butterworth, filtragem passa-alta ideal, filtragem passa-alta Butterworth e aprimoramento passa-alta

Comparação experimental: sobreponha diferentes ruídos (Gaussiano, sal e pimenta), use diferentes frequências de corte e compare os resultados do processamento.

– 2. Use a função fspcial para simular diferentes efeitos de degradação em uma imagem: desfoque de movimento, desfoque gaussiano, desfoque médio

– 3. Execute a restauração do filtro Wiener em imagens desfocadas

Comparação experimental: Compare os resultados de filtragem de imagens desfocadas com e sem ruído sobreposto;

3. Princípio do Algoritmo

  1. Filtragem de imagem: processe a imagem de entrada para remover ruído, suavizar detalhes, etc. Entre eles, filtragem passa-baixa ideal, filtragem passa-baixa Butterworth, filtragem passa-alta ideal, filtragem passa-alta Butterworth e aprimoramento passa-alta são diferentes tipos de filtros. O filtro passa-baixa pode extrair informações de baixa frequência na imagem, como a mudança geral de brilho da imagem; enquanto o filtro passa-alta pode destacar informações detalhadas de alta frequência, como bordas e texturas na imagem.
  2. Degradação de simulação de imagem: Use a função fspcial para simular o efeito de degradação, no qual desfoque de movimento, desfoque gaussiano e desfoque médio são diferentes tipos de kernel de desfoque. O desfoque de movimento é o desfoque da imagem causado pelo movimento da câmera ou do objeto. É comum quando a câmera treme ao fotografar objetos em movimento ou ao fotografar com a mão; O desfoque gaussiano é causado pela contaminação da imagem pelo ruído gaussiano; o desfoque médio é um simples método de desfoque linear. Substitua o valor de cada pixel pela média dos pixels circundantes.
  3. Restauração do filtro Wiener: O filtro Wiener é um método de restauração baseado no critério do erro quadrático médio mínimo (MSE), que pode ser usado para restaurar imagens afetadas por degradação e ruído. Reduz os efeitos causados ​​pelo ruído e pela degradação através da média ponderada das imagens no domínio da frequência, ao mesmo tempo que retém informações detalhadas na imagem.

4. Fluxo do programa

O fluxo do programa para processar uma imagem ruidosa com diferentes filtros:

  1. Leia em uma imagem barulhenta.
  2. Execute a filtragem passa-baixa ideal, a filtragem passa-baixa Butterworth, a filtragem passa-alta ideal, a filtragem passa-alta Butterworth e o aprimoramento passa-alta na imagem e registre a imagem processada por cada método.
  3. Para cada imagem processada, o ruído gaussiano e o ruído sal e pimenta são sobrepostos e os resultados processados ​​​​são registrados respectivamente.
  4. Altere a frequência de corte, refaça o processo acima e registre os resultados em diferentes frequências de corte para cada método.
  5. Compare os efeitos de processamento de cada filtro sob diferentes parâmetros.

O fluxo do programa de uso da função fspcial para simular diferentes efeitos de degradação e restauração do filtro Wiener:

  1. Lê uma imagem e exibe a imagem original.
  2. Use a função fspcial para executar desfoque de movimento, desfoque gaussiano e desfoque médio na imagem e registre a imagem processada por cada método.
  3. Para cada imagem processada, o ruído gaussiano e o ruído sal e pimenta são sobrepostos e os resultados processados ​​​​são registrados respectivamente.
  4. As imagens ruidosas correspondentes a cada método de processamento de desfoque são processadas usando o método de restauração do filtro Wiener e os resultados processados ​​são registrados.
  5. Compare cada método de desfoque e o efeito de restauração filtrado com ruído.

5. Principais códigos e comentários (resultados em execução) de cada parte do algoritmo

1. 1

f=imread('arroz.png');

f=duplo(f);

I1=imnoise(f,'gaussian',0.1,0.1); %Adiciona poluição sonora gaussiana à imagem

I4=imnoise(f,'salt & pepper'); %Adicione poluição sonora com sal e pimenta à imagem

F=fftshift(fft2(f));% Execute a transformada de Fourier na imagem e mude o centro do domínio da frequência para o ponto médio

d0=20; % frequência de corte

[m,n]=tamanho(f); %Filtro passa-baixo ideal

h=0;

para você=1:m

    para v=1:n

        se sqrt((um/2)*(um/2)+(vn/2)*(vn/2))<=d0

            h=1;

        outro

            h=0;

        fim

        FH(u,v)=F(u,v)*h;

    fim

fim

fh=ifft2(FH); %Filtro passa-baixo Butterworth

n = 1;

para você=1:m

    para v=1:n

        hb=1/(1+(sqrt(2)-1)*(sqrt((um/2)*(um/2)+(vn/2)*(vn/2))/d0)^(2* obs));

        FHB(u,v)=F(u,v)*hb;

    fim

fim

figura

subplot(2,4,1),imshow(uint8(f)); title('imagem original');

subplot(2,4,2),imshow(uint8(abs(fh)),[]);title('Filtro passa-baixa ideal')

subplot(2,4,3),imshow(abs(fhb),[]);title('Filtro passa-baixo Butterworth')

 

1.2

f=imread('arroz.png');

f=duplo(f);

I1=imnoise(f,'gaussian',0.1,0.1); %Adiciona poluição sonora gaussiana à imagem

I4=imnoise(f,'salt & pepper'); %Adicione poluição sonora com sal e pimenta à imagem

F=fftshift(fft2(I1));% Execute a transformada de Fourier na imagem e mude o centro do domínio da frequência para o ponto médio

d0=10; % frequência de corte

[m,n]=tamanho(I1); %Filtro passa-baixo ideal

h=0;

para você=1:m

    para v=1:n

        se sqrt((um/2)*(um/2)+(vn/2)*(vn/2))<=d0

            h=1;

        outro

            h=0;

        fim

        FH(u,v)=F(u,v)*h;

    fim

fim

fh=ifft2(FH); %Filtro passa-baixo Butterworth

n = 1;

para você=1:m

    para v=1:n

        hb=1/(1+(sqrt(2)-1)*(sqrt((um/2)*(um/2)+(vn/2)*(vn/2))/d0)^(2* obs));

        FHB(u,v)=F(u,v)*hb;

    fim

fim

figura

subplot(2,4,1),imshow(uint8(f)); title('imagem original');

subplot(2,4,2),imshow(I1),title('Imagem contaminada por ruído gaussiano');

subplot(2,4,3),imshow(I4),title('Imagem contaminada com ruído de sal e pimenta');

subplot(2,4,4),imshow(uint8(abs(fh)),[]);title('Filtragem passa-baixa ideal após poluição sonora gaussiana')

subplot(2,4,5),imshow(abs(fhb),[]);title('Filtro passa-baixa Butterworth')

 

1.3

             f=imread('arroz.png');

f=duplo(f);

F=fftshift(fft2(f));% Execute a transformada de Fourier na imagem e mude o centro do domínio da frequência para o ponto médio

d0=10; % frequência de corte

[m,n]=tamanho(f); %filtragem passa-alta ideal

h=0;

para você=1:m

    para v=1:n

        se sqrt((um/2)*(um/2)+(vn/2)*(vn/2))<=d0

               h=0;

        outro

            h=1;

        fim

        FH(u,v)=F(u,v)*h;

    fim

fim

fh=ifft2(FH); %Filtro passa-alta Butterworth

n = 1;

para você=1:m

    para v=1:n

        hb=1/(1+(sqrt(2)-1)*(d0/sqrt((um/2)*(um/2)+(vn/2)*(vn/2)))^(2* obs));

        FHB(u,v)=F(u,v)*hb;

    fim

fim

fhb=ifft2(FHB);

figure,subplot(1,3,1),imshow(uint8(f)); title('imagem original');

subplot(1,3,2),imshow(uint8(abs(fh)),[]);title('Filtro passa-alto ideal');;

subplot(1,3,3),imshow(abs(fhb),[]);title('Filtro passa-alto Butterworth')

 

1.4

f=imread('arroz.png');

f=duplo(f);

I1=imnoise(f,'gaussian',0.1,0.1); %Adiciona poluição sonora gaussiana à imagem

I4=imnoise(f,'salt & pepper'); %Adicione poluição sonora com sal e pimenta à imagem

F=fftshift(fft2(I4));% Execute a transformada de Fourier na imagem e mude o centro do domínio da frequência para o ponto médio

d0=10; % frequência de corte

[m,n]=tamanho(I4); %filtragem passa-alta ideal

h=0;

para você=1:m

    para v=1:n

        se sqrt((um/2)*(um/2)+(vn/2)*(vn/2))<=d0

               h=0;

        outro

            h=1;

        fim

        FH(u,v)=F(u,v)*h;

    fim

fim

fh=ifft2(FH); %Filtro passa-alta Butterworth

n = 1;

para você=1:m

    para v=1:n

        hb=1/(1+(sqrt(2)-1)*(d0/sqrt((um/2)*(um/2)+(vn/2)*(vn/2)))^(2* obs));

        FHB(u,v)=F(u,v)*hb;

    fim

fim

fhb=ifft2(FHB);

figura

subplot(2,3,1),imshow(uint8(f)); title('imagem original');

subplot(2,3,2),imshow(I1),title('Imagem contaminada por ruído gaussiano');

subplot(2,3,3),imshow(I4),title('Imagem contaminada com ruído de sal e pimenta');

subplot(2,3,4),imshow(uint8(abs(fh)),[]);title('Filtragem passa-alta ideal após poluição sonora por sal e pimenta');

subplot(2,3,5),imshow(abs(fhb),[]);title('Filtragem passa-alta Butterworth da poluição sonora por sal e pimenta');

 

2.1

%Adicionar ruído à imagem

I=imread('Lena.bmp');

%I=rgb2cinza(I);

PSF=fspecial('movimento',31,11);

J=imfiltro(I,PSF,'conv');

figura,subtrama(2,2,1),imshow(I);título('imagem fonte')

subtrama(2,2,2),imshow(J),título('Imagem desfocada em movimento')

PSF=fspecial('disco',5); J=imfiltro(I,PSF,'conv');

subtrama(2,2,3),imshow(J),título('Imagem média desfocada')

PSF=fspecial('gaussiano',31,3); J=imfiltro(I,PSF,'conv');

subtrama(2,2,4),imshow(J),título('Imagem desfocada gaussiana')

 

3.1

I=imread('Lena.bmp');

psf=fspecial('movimento',31,11);

desfocado=imfilter(I,psf,'completo');

wnr=deconvwnr(turva,psf,0.1);

figura,subtrama(2,2,1),imshow(I),título('imagem original')

subtrama(2,2,2),imshow(desfocado),título('imagem desfocada em movimento')

subplot(2,2,3),imshow(wnr),title('Imagem restaurada do filtro Weiner')

 

3.2

I=imread('Lena.bmp');

psf=fspecial('movimento',21,11);

desfocado=imfilter(I,psf,'completo');

noise=0.1*randn(size(blurred)); %Gera matriz de ruído aleatório

bn=imadd(blurred,im2uint8(noise)); %bn é uma imagem borrada com ruído

nsr=sum(noise(:).^2)/sum(im2double(I(:)).^2); %Calcular a relação sinal-ruído

wnr=deconvwnr(bn,psf,0,1); wnr1=deconvwnr(bn,psf,nsr);

NP=abs(fftn(noise).^2); % Calcule a energia da imagem com ruído

IP=abs(fftn(im2double(I)).^2); % Calcule a energia da imagem original, você pode substituir a imagem original por uma imagem borrada com ruído

NCORR=fftshift(real(ifftn(NP))); % Calcular o coeficiente de correlação da imagem de ruído

ICORR=fftshift(real(ifftn(IP))); % Calcula o coeficiente de correlação da imagem original

wnr2=deconvwnr(bn,psf,NCORR,ICORR);

figura,subtrama(2,3,1),imshow(I),título('imagem original')

subtrama(2,3,2),imshow(desfocado),título('imagem desfocada em movimento')

subtrama(2,3,3),imshow(bn),título('Imagem borrada de movimento barulhenta')

subplot(2,3,4),imshow(wnr),title('Restaurar imagem sem considerar ruído')

subplot(2,3,5),imshow(wnr1),title('Imagem restaurada com relação sinal-ruído conhecida')

subplot(2,3,6),imshow(wnr2),title('Imagem restaurada NCORR e ICORR conhecida')

 

6. Análise de resultados

  1. Os resultados da comparação experimental de filtragem passa-baixa ideal, filtragem passa-baixa Butterworth, filtragem passa-alta ideal, filtragem passa-alta Butterworth e aprimoramento passa-alta em uma imagem de ruído são os seguintes:

Este experimento compara os resultados do processamento aplicando diferentes tipos de filtros à mesma imagem com ruído e aplicando diferentes frequências de corte ao adicionar ruído gaussiano e sal e pimenta. Como o filtro ideal tem resposta infinita, é difícil implementá-lo em aplicações práticas, por isso a imagem aparecerá preta. O filtro Butterworth pode controlar o efeito de filtragem alterando a frequência de corte. O filtro passa-baixa ideal pode remover efetivamente o ruído de alta frequência, mas desfocará a imagem; o filtro passa-baixa Butterworth pode equilibrar a supressão de ruído e a clareza da imagem, e seu desempenho é mais suave. Um filtro passa-alta ideal pode destacar detalhes de alta frequência em uma imagem, mas também pode aumentar o ruído. O filtro passa-alta Butterworth suprime informações de baixa frequência e aprimora informações de alta frequência. O filtro de aprimoramento passa-alta pode eliminar o ruído de baixa frequência enquanto retém os detalhes de alta frequência tanto quanto possível, mas você precisa encontrar um fator de ganho adequado para equilibrar os dois.

2. Use a função fspcial para simular diferentes efeitos de degradação em uma imagem: os resultados do desfoque de movimento, desfoque gaussiano e desfoque médio são analisados ​​da seguinte forma:

Este experimento simula diferentes efeitos de degradação de imagem aplicando diferentes tipos de filtros de desfoque à mesma imagem. O desfoque de movimento é um desfoque causado pelo movimento da câmera ou do objeto alvo, que pode ser simulado por um filtro de desfoque de movimento linear; o desfoque gaussiano é um desfoque causado pelos pixels da imagem sendo afetados por ruído aleatório, que pode ser simulado por um filtro gaussiano; Mean Blur é o desfoque causado pela substituição de pixels em uma imagem pela média dos pixels circundantes e pode ser simulado por um filtro médio.

3. A análise dos resultados da restauração do filtro Wiener de imagens desfocadas é a seguinte:

O primeiro é a qualidade da imagem. No experimento, realizamos a restauração do filtro Wiener na imagem borrada e comparamos a imagem processada com a imagem original para avaliar a qualidade da imagem processada. Normalmente, as imagens filtradas devem ter maior clareza, menos ruído e melhores detalhes sem distorção excessiva.

O segundo é o efeito de filtragem. No experimento, comparamos os resultados da filtragem de imagens borradas com e sem ruído sobreposto. Ao comparar as imagens filtradas nos dois casos, podemos concluir que para imagens desfocadas com ruído sobreposto, a filtragem de Wiener pode remover melhor o ruído e restaurar detalhes, e para imagens desfocadas sem ruído sobreposto, a filtragem de Wiener também pode melhorar a qualidade da imagem, mas a melhoria pode não ser tão dramático quanto nas imagens borradas sobrepostas com ruído.

7. Resumo

Ao realizar o processamento de imagens, diferentes efeitos podem ser obtidos através de diferentes tipos de filtros. Neste experimento, métodos como filtragem passa-baixa ideal, filtragem passa-baixa Butterworth, filtragem passa-alta ideal, filtragem passa-alta Butterworth e aprimoramento passa-alta foram usados ​​​​para processar uma imagem de ruído, e diferentes frequências de corte e superposição de diferentes ruídos foram comparados. Pode-se descobrir que a filtragem passa-baixa pode remover informações de alta frequência da imagem, reter informações de frequência mais baixa e suavizar a imagem. A filtragem passa-alta, por outro lado, pode aprimorar as informações de alta frequência na imagem e torná-la mais nítida. Resumindo, no processamento de imagens, a escolha de filtros e parâmetros apropriados é muito importante. A função fspcial do Matlab também foi usada no experimento para simular diferentes tipos de efeitos de degradação, incluindo desfoque de movimento, desfoque gaussiano e desfoque médio. Ao simular esses efeitos, você pode entender melhor o impacto desses efeitos de desfoque na imagem. Ao mesmo tempo, também aprendemos o método de filtragem de Wiener para restauração de imagens borradas. Este método pode remover com eficácia o ruído e o desfoque das imagens e melhorar a clareza e a qualidade da imagem. No geral, esta experiência permitiu-me ter uma compreensão mais profunda de conhecimentos relevantes e, ao mesmo tempo, também experimentei algumas técnicas e detalhes em aplicações práticas.

Acho que você gosta

Origin blog.csdn.net/m0_63975371/article/details/131579514
Recomendado
Clasificación