圖像增強:直方圖均衡和小波變換【matlab】


  直方圖均衡:統計圖像像素灰度的直方圖分布。對其進行重新分配以使圖像的直方圖分布更加均衡。

       小波變換:圖像輪廓主要體現在低頻部分,可以通過對低頻分解系數進行增強處理,對高頻分解系數進行衰減處理,達到圖像增強。

 

clc;
clear all;
img=imread('D:\文件及下載相關\圖片\gray.jpg');
gray_img=rgb2gray(img);                      
[m,n]=size(gray_img);                          
pr=zeros(1,256);                        
for i=1:256
     pr(i)=length(find(gray_img==i-1))/(m*n);  
end
S=zeros(1,256);
for i=1:256
     for j=1:i
          S(i)=pr(j)+S(i);              
     end
end
S1=round((S*255)+0.5);                    
for i=1:256
     q(i)=sum(pr(find(S1==i)));         
end
res_img=gray_img;
for i=1:256
    res_img(find(gray_img==i-1))=S1(i);              
end
imshow(res_img);
title('均衡化后');

 

小波變換:

clc
I= imread('D:\文件及下載相關\圖片\gray.jpg');
I1 = I(:,:,1);
[c,s]=wavedec2(I1,3,'sym4'); len=length(c);
w = prod(s(1,:));
for i =1:w  
    if(c( i )>250)  
      c( i )=1.3*c( i );  
    end  
end  
for i =w:len  
    if(c( i ) < 250)  
      c( i )=0.8*c( i );  
    end  
end  
nx1=waverec2(c,s,'sym4'); 
I2 = I(:,:,2);
[c,s]=wavedec2(I2,3,'sym4'); 
len=length(c);
w = prod(s(1,:));
for j =1:w  
    if(c( j )>250)  
      c( j )=1.3*c( j );  
    end  
end  
for j =w:len  
    if(c( j ) < 250)  
      c( j )=0.8*c( j );  
    end  
end  
nx2=waverec2(c,s,'sym4'); I3 = I(:,:,3);
[c,s]=wavedec2(I3,3,'sym4'); 
len=length(c);
w = prod(s(1,:));
for k =1:w  
    if(c( k )>250)  
      c( k )=1.3*c( k );  
    end  
end  
for k =w:len  
    if(c( k ) < 250)  
      c( k )=0.8*c( k );  
    end  
end  
nx3=waverec2(c,s,'sym4');
nx = cat(3,nx1,nx2,nx3);
figure(),imshow(nx/256)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM