Code covered by the BSD License  

Highlights from
Image processing laboratory

image thumbnail

Image processing laboratory

by

 

11 Aug 2010 (Updated )

An application with an intuitive GUI that you can use for some image processing exercises.

compression_type.m
function compression_type(img,mask,scelta)
%Questa funzione effettua la conversione di una immagine RGB passata come
%parametro di ingresso, elaborandola e permettendo di specificare una
%maschera per i singoli sottoblocchi. Inoltre tramite il terzo parametro 
%possibile scegliere se elaborare l'intera immagine o solo la componente di
%luminanza (rispettivamente 0 o 1).



%Definizione dati   
T=dctmtx(8);            %Definisco una matrice 8x8 per effettuare la trascormata coseno
fun=@(x)(T*x*T');       %Definisco la funzione di trasformazione
ifun=@(x)(T'*x*T);      %Definisco la funzione di anti-trasformazione
fmask=@(x)(x.*mask);    %Definisco la funzione che effettua il mascheramento dei sottoblocchi
img=im2double(img);     %Converti i valori di ogni pixel in double

    %%Se  stato scelto di elaborare l'intera immagine
if(scelta==0)          
    
    %Applico la trasformata coseno ad ogni componente
        red=blkproc(img(:,:,1),[8 8],fun);
        green=blkproc(img(:,:,2),[8 8],fun);
        blue=blkproc(img(:,:,3),[8 8],fun);

    %Applico il mascheramento dei pixel
        mred=blkproc(red,[8 8],fmask);
        mgreen=blkproc(green,[8 8],fmask);
        mblue=blkproc(blue,[8 8],fmask);

    %Applico la trasformazione inversa
        ired=blkproc(mred,[8 8],ifun);
        igreen=blkproc(mgreen,[8 8],ifun);
        iblue=blkproc(mblue,[8 8],ifun);

    %plot dell'immagine originale
    figure
    subplot(2,2,1)
    imshow(img)
    title('"Originale"')

    %plot della trasformata coseno
    t_img(:,:,1)=red;     %Ricostruisco l'immagine dalle sue componenti
    t_img(:,:,2)=green;
    t_img(:,:,3)=blue;
    subplot(2,2,2)
    imshow(t_img)
    title('"Trasformata"')

    %plot dell'immagine antitrasformata
    it_img(:,:,1)=ired;   %Ricostruisco l'immagine dalle sue componenti
    it_img(:,:,2)=igreen;
    it_img(:,:,3)=iblue;
    subplot(2,2,3)
    imshow(it_img)
    title('"Elaborata"')

    %plot della trasformata coseno mascherata
    m_img(:,:,1)=mred;    %Ricostruisco l'immagine dalle sue componenti
    m_img(:,:,2)=mgreen;
    m_img(:,:,3)=mblue;
    subplot(2,2,4)
    imshow(m_img)
    title('"Trasformata con maschera"')
    
    %%Se  stato scelto di elaborare la componente luminanza
elseif(scelta==1)       
    
    %Converto l'immagine nella componente luminanza
    img_r(:,:,1)=.299.*img(:,:,1)+.587.*img(:,:,2)+.114.*img(:,:,3);
    
    %plot dell'immagine originale
    figure
    subplot(2,2,1)
    imshow(img_r,[])
    title('"Originale"')
    
    %applico la trasformata coseno
    t_img=blkproc(img_r(:,:,1),[8 8],fun);
    
    %plot della trasformata coseno
    subplot(2,2,2)
    imshow(t_img)
    title('"Trasformata"')
    
    %applico il maschermanto dei pixel
    m_img=blkproc(t_img,[8 8],fmask);
    
    %plot della trasformata con maschera
    subplot(2,2,4)
    imshow(m_img)
    title('"Trasformata con maschera"')
    
    %antitrasformo l'immagine
    it_img=blkproc(m_img,[8 8],ifun);
    
    %plot dell'immagine elaborata
    subplot(2,2,3)
    imshow(it_img,[])
    title('"Elaborata"')
    
end


end

Contact us