Pages: [1]   Go Down
Print
Author Topic: funzione contrasto  (Read 753 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 25-11-2009, 18:48:18 »

salve ragazzi ho provato a fare una funzione che mi faccia il contrasto ma non so se è giusta,qualcuno potrebbe controllarla?Eccovi il codice
Code:
function x=contrasto(a,o,c,g)
%questa funzione aumenta il contrasto se c==1 altrimenti ,se c==0 lo diminuisce
%a è la matrice di input,o la soglia dove avviene il contrasto
%g sarà il valore del contrasto e deve essere un valore positivo
[m n]=size(a);
invpotenza=double(a).^(1/g);
potenza=double(a).^g;
mii=min(invpotenza(:));
mai=max(invpotenza(:));
mi=min(potenza(:));
ma=max(potenza(:));
if(c==0& g>0)%diminuisco il contrasto
    %schiarendo tutti i valori più piccoli di o e scurendo tutti i valori maggiori di o 
    for(i=1:m)
        for(j=1:n)
            if(a(i,j)<o)
                x(i,j)=255*((a(i,j)-mii)/(mai-mii));
            else
                x(i,j)=255*((a(i,j)-mi)/(ma-mi));
            end
        end
    end
   figure,imshow(x),title('contrasto diminuito ');   
   
   
else if (c==1& g>0)%aumento il contrasto
        for(i=1:m)
            for(j=1:n)
                if(a(i,j)<o)
                    x(i,j)=255*((a(i,j)-mi)/(ma-mi));
                else
                     x(i,j)=255*((a(i,j)-mii)/(mai-mii));
                end
            end
        end
        figure,imshow(x,[]),title('contrasto aumentato');
       
       
       
    else x='valori errati o di c o di g!!!!stai attento!!';
    end
end
vi ringrazio anticipatamente per le vostre eventuali risposte
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #1 on: 02-12-2009, 21:41:11 »

vabbè è sbagliata ,ma nessuno l'hai implementata in matlab??
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Pages: [1]   Go Up
Print
Jump to: