直方图均衡化算法 matlab,matlab程序_retinex_frankle_mccann+直方图均衡化_去雾算法
clear all
rgb=imread('g3.jpg');%需要處理的圖片
m=size(rgb,1);
n=size(rgb,2);
for k=0:255
rr0(k+1)=length(find(rgb(:,:,1)==k))/(m*n); %計算每級灰度出現的概率,將其存入GP中相應位置
end
figure,bar(0:255,rr0,'g') %繪制直方圖
title('原圖像直方圖')
for i=1:m
for j=1:n
rr(i,j)=logm(double(rgb(i,j,1))+eps);
gg(i,j)=logm(double(rgb(i,j,2))+eps);
bb(i,j)=logm(double(rgb(i,j,3))+eps);
end
end
rr=rr/max(max(rr(:)));
gg=gg/max(max(gg(:)));
bb=bb/max(max(bb(:)));
rrr= retinex_frankle_mccann(rr, 8);
ggg= retinex_frankle_mccann(gg, 8);
bbb= retinex_frankle_mccann(bb, 8);
rgg=(rrr.*ggg.*bbb).^(1/3);
for i=1:m
for j=1:n
rrr(i,j)=round(exp(rrr(i,j)*5.54));
ggg(i,j)=round(exp(ggg(i,j)*5.54));
bbb(i,j)=round(exp(bbb(i,j)*5.54));
end
end
rgb=cat(3,uint8(rrr),uint8(ggg),uint8(bbb));
rgb=max(min(rgb,255),0);
for k=0:255
rr0(k+1)=length(find(rgb(:,:,1)==k))/(m*n); %計算每級灰度出現的概率,將其存入GP中相應位置
end
figure,bar(0:255,rr0,'g') %繪制直方圖
title('原圖像直方圖')
sz=size(rgb);
m=sz(1,1);
n=sz(1,2);
rr=rgb(:,:,1);
gg=rgb(:,:,2);
bb=rgb(:,:,3);
rr0=find2(rr)/(m*n); %計算每級灰度出現的概率,將其存入GP中相應位置
rr1(1,1)=rr0(1,1);
for k=2:256
rr1(1,k)=rr1(1,k-1)+rr0(1,k);
end
S2=round((rr1*255)+0.5); %將Sk歸到相近級的灰度
rrr=rr;
ggg=gg;
bbb=bb;
for i=0:255
rrr(find(rr==i))=S2(i+1); %將各個像素歸一化后的灰度值賦給這個像素
ggg(find(gg==i))=S2(i+1);
bbb(find(bb==i))=S2(i+1);
end
rgb1=cat(3,rrr,ggg,bbb);
rgb1=max(min(rgb1,255),0);
for k=0:255
rr0(k+1)=length(find(rgb1(:,:,1)==k))/(m*n); %計算每級灰度出現的概率,將其存入GP中相應位置
end
figure,bar(0:255,rr0,'g') %繪制直方圖
title('原圖像直方圖')
figure,imshow(rgb1)
function Retinex = retinex_frankle_mccann(L, nIterations)
global RR IP OP NP Maximum
RR = L;
Maximum = max(L(:)); % maximum color value in the image
[nrows, ncols] = size(L);
shift = 2^(fix(log2(min(nrows, ncols)))-1); % initial shift
OP = Maximum*ones(nrows, ncols); % initialize Old Product
while (abs(shift) >= 1)
for i = 1:nIterations
CompareWith(0, shift); % horizontal step
CompareWith(shift, 0); % vertical step
end
shift = -shift/2;
總結
以上是生活随笔為你收集整理的直方图均衡化算法 matlab,matlab程序_retinex_frankle_mccann+直方图均衡化_去雾算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文章页点赞php代码,wordpress
- 下一篇: spike 序列matlab,SPKto