[MatLab] Esercizio filtraggio Immagini
Ciao,
mi è stato assegnato un esercizio in Matlab e vorrei consultarvi prima di consegnarlo per evitare errori e magari per migliorarlo.
Testo esercizio:
Data un'immagine, di determini:
1- Quantificare la quantità di rumore presente nell'immagine attualmente.
2- Aggiungere del rumore di tipo "Sale e Pepe" e applicare i filtri di media e mediana
3- Aggiungere del rumore di tipo "Gaussiano" e applicare i filtri di media e mediana
ecco il codice prodotto da me:

In questa immagine non riesco a visualizzare per intero il grafico, come posso fare?

media e mediana fatta con FUNCTION


Grazie
mi è stato assegnato un esercizio in Matlab e vorrei consultarvi prima di consegnarlo per evitare errori e magari per migliorarlo.
Testo esercizio:
Data un'immagine, di determini:
1- Quantificare la quantità di rumore presente nell'immagine attualmente.
2- Aggiungere del rumore di tipo "Sale e Pepe" e applicare i filtri di media e mediana
3- Aggiungere del rumore di tipo "Gaussiano" e applicare i filtri di media e mediana
ecco il codice prodotto da me:
[Imm]=imread('Lucca.jpg'); %-----------Quantità di rumore presente nell'immagine---------- %Prendo in considerazione una porzione dell'immagine il più uniforme possibile PorzioneImm=imcrop(Imm,[4694.5 502.5 220 220]); %Calcolo la deviazione standard devSt=stdfilt(PorzioneImm); %Suddivido l'immagine a colori nei tre livelli RBG per visuliazzare l'errore presente img1=PorzioneImm(:,:,1); img2=PorzioneImm(:,:,2); img3=PorzioneImm(:,:,3); %Visualizzo l'istogramma dei tre piani RGB dell'immagine rHist1 = imhist(img1);%istogramma piano rosso gHist1 = imhist(img2);%istogramma piano verde bHist1 = imhist(img3);%istogramma piano blu subplot(3,3,1),imshow(Imm),title('Immagine'); subplot(3,3,2),imshow(PorzioneImm),title('Porzione imamgine'); subplot(3,3,3),imshow(devSt,[]),title('Deviazione Standard'); subplot(3,3,4),imshow(img1),title('Livello Rosso'); subplot(3,3,5),imshow(img2),title('Livello Verde'); subplot(3,3,6),imshow(img3),title('Livello Blu'); subplot(3,3,7),imhist(img1),title('Istogramma Rosso'); subplot(3,3,8),imhist(img2),title('Istogramma Verde'); subplot(3,3,9),imhist(img3),title('Istogramma Blu');

In questa immagine non riesco a visualizzare per intero il grafico, come posso fare?

%-----------------SALE E PEPE---------------------------------------------- BN=rgb2gray(Imm); RumoreSP=imnoise(BN,'salt & pepper',0.15); %------------Filtro Mediana e Media MatLab--------------------------------- Mediana=medfilt2(RumoreSP); %filtro mediano di matlab media=fspecial('average',[8,8]); filtr=imfilter(RumoreSP,media); %filtro media di matlab figure(2) subplot(2,2,1),imshow(BN);title('Immagine BN'); subplot(2,2,2),imshow(RumoreSP);title('Sale e Pepe'); subplot(2,2,3),imshow(Mediana);title('Filtro Mediano'); subplot(2,2,4),imshow(filtr),title('Filtro Media 8x8'); % -------Filtro Mediano alternativa-------- BN=double(BN); [x,y]=size(BN); ImmMediana=zeros(x,y); for i=2:x-1 for j=2:y-1 Vett=BN(i-1:i+1, j-1:j+1); %filtro 3x3 Vett=sort(Vett); %ordina gli elementi ImmMediana(i,j)=Vett(5); %considera solo l'elemento in posizione 5 end; end; %-------Filtro Media alternativa-------- ImmMedia=conv_K(5,RumoreSP); ImmMediana=uint8(ImmMediana); figure(3); subplot(1,2,1),imshow(ImmMediana),title('Filtro Mediana Alternativa'); subplot(1,2,2),imshow(ImmMedia),title('Filtro Media Alternativa');
function I = conv_K(M,I) K = 1/(M*M)*ones(M); %creazione di una matrice M cont=0; h=2; while(h<M) %per determinare la grandezza della matrice cont=cont+1; h=h+1; end [n m] = size(I); J = double(I); % conversione per operaz. aritmetiche for i = 2:n-cont for j = 2:m-cont I(i,j) = sum(sum(K.*J(i-1:i+cont,j-1:j+cont))); end end

media e mediana fatta con FUNCTION

%-----------------GAUSSIAN-------------------------------------------- iBN=rgb2gray(Imm); rGA = imnoise (iBN,'gaussian', 0.15) ; figure(4); subplot(2,2,1),imshow(iBN);title('Immagine'); subplot(2,2,2),imshow(rGA);title('Rumore Gaussiano'); % -------Filtro Media e Mediana (MatLab)-------- media=fspecial('average',[8,8]); fMediaG=imfilter(rGA,media);% filtro media fMedianaG=medfilt2(rGA);% filtro mediano figure(4); subplot(2,2,3),imshow(fMediaG);title('Filtro Media'); subplot(2,2,4),imshow(fMedianaG);title('Filtro Mediana');

Grazie
Risposte
ho risolto... è possibile chiudere.
Grazie
Grazie