資源簡介
針對圖像中亮度暗的部分進行增強,而其他部分保持不變,參考岡薩雷斯圖像處理鎢絲圖像處理的例子寫出的程序,對圖像進行增強,達到了很好的效果。
代碼片段和文件信息
clearclc;
I=imread(‘imageRao.bmp‘);%讀圖
f=double(I);%將原圖轉為double型
[mn]=size(I);%設定原圖為m*n的矩陣
M=mean2(I);D=std2(I);%計算整體均值和方差
k1=0.4;
k2=0.02;
k3=0.4;
E=4.0;%k1,k2,k3,E為設定的閾值
Mloc=zeros(mn);%設一個m*n的0矩陣,后面計算的3*3領域的均值放在此矩陣內
Dloc=zeros(mn);%設一個m*n的0矩陣,后面計算的3*3領域的房車放在此矩陣內
for?i=2:m-1
????for?j=2:n-1
??????Mloc(ij)=(f(i-1j-1)+f(i-1j)+f(i-1j+1)+f(ij-1)+f(ij)+f(ij+1)...
??????????+f(i+1j-1)+f(i+1j)+f(i+1j+1))/9;?%計算原圖中3*3領域內的均值
??????
??????Dloc(ij)=((f(i-1j-1)-Mloc(ij))^2+(f(i-1j)-Mloc(ij))^2+(f(i-1j+1)-Mloc(ij))^2+...
??????(f(ij-1)-Mloc(ij))^2+(f(ij+1)-Mloc(ij))^2+(f(i+1j-1)-Mloc(ij))^2+...
??????????(f(i+1j)-Mloc(ij))^2+(f(i+1j+1)-Mloc(ij))^2)^(1/2);?%計算原圖中3*3領域內的方差?????
????end
end???????
g=zeros(mn);%設定一個m*n的0矩陣,用于產生增強的圖像
for?i=1:m
????for?j=1:n
if?(Mloc(ij)<=k1*M)?&&?(Dloc(ij)>=k2*D)?&&?(Dloc(ij)<=k3*D)
??????g(ij)=E*f(ij);
%滿足原圖中3*3領域內的平均像素小于整體平均像素*閾值k1,
%且滿足3*3領域內方差在閾值k2*整體平均方差與閾值k3*整體平均方差之間的像素,
%我們將這樣的像素乘以閾值E,達到較暗部分
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????76174??2010-12-09?11:29??imageRao.bmp
?????文件???????1433??2010-12-27?12:24??zengqiang.m
-----------?---------??----------?-----??----
????????????????77607????????????????????2
評論
共有 條評論