資源簡介
用MATLAB寫的多尺度retinex算法
代碼片段和文件信息
function?z=msr(IMAGE)
f=IMAGE;
fr=f(:?:?1);?fg=f(:?:?2);?fb=f(:?:?3);%RGB通道
mr=mat2gray(im2double(fr));?mg=mat2gray(im2double(fg));?mb=mat2gray(im2double(fb));%數據類型歸一化
alf1=1458;?%定義標準差alf=a^2/2??a=54
n=161;%定義模板大小?
n1=floor((n+1)/2);%計算中心?
for?i=1:n?
????for?j=1:n?
??????b(ij)?=exp(-((i-n1)^2+(j-n1)^2)/(4*alf1))/(pi*alf1);?%高斯函數
????end?
end?
nr1?=?imfilter(mrb‘conv‘?‘replicate‘);ng1?=?imfilter(mgb‘conv‘?‘replicate‘);nb1?=?imfilter(mbb‘conv‘?‘replicate‘);%卷積濾波
ur1=log(nr1);?ug1=log(ng1);?ub1=log(nb1);
tr1=log(mr);tg1=log(mg);tb1=log(mb);
yr1=(tr1-ur1)/3;yg1=(tg1-ug1)/3;yb1=(tb1-ub1)/3;
alf2=53.38;?%定義標準差alf=a^2/2????a=10.3325
x=31;%定義模板大小?
x1=floor((n+1)/2);%計算中心?
for?i=1:n?
????for?j=1:n?
??????a(ij)?=exp(-((i-n1)^2+(j-n1)^2)/(4*alf2))/(6*pi*alf2);?%高斯函數
????end?
end?
nr2?=?imf
- 上一篇:matlab最大物體邊界輪廓的提取源程序
- 下一篇:三相VIENNA整流器
評論
共有 條評論