• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: retinex  matlab  

资源简介

主要是单尺度和多尺度retinex的matlab实现程序 ,带有注释。

资源截图

代码片段和文件信息

% S=imread(strcat(‘2.bmp‘));
S=imread(‘2.jpg‘);
% S=im2gray(filename);
S=rgb2gray(S)
[mn]=size(S);
S=double(S);

size=m*n;
mean=sum(sum(S)2)/size;
R=zeros(mn);
R=repmat(meanmn);

%做高斯函数
c=80;
for i=1:m
    for j=1:n
        N(ij)=exp(-(i^2+j^2)/c^2);
    end
end
K=1/sum(N(:));
N1=K*N;
G=conv2(SN1‘same‘);  %尺度一

c=120;
for i=1:m
    for j=1:n
        N(ij)=exp(-(i^2+j^2)/c^2);
    end
end
K=1/sum(N(:));
N1=K*N;
G1=conv2(SN1‘same‘);  %尺度二

c=250;
for i=1:m
    for j=1:n
        N(ij)=exp(-(i^2+j^2)/c^2);
    end
end
K=1/sum(N(:));
N1=K*N;
G2=conv2(SN1‘same‘);  %尺度三

%计算MSR

SS=zeros(mn);
for i=1:m
   for j=1:n
    SS(ij)=log(S(ij)+0.0005);
    GG(ij)=log(G(ij)+0.0005);
    GG1(ij)=log(G1(ij)+0.0005);
    GG2(ij)=log(G2(ij)+0.0005);
    V(ij)= SS(ij)-GG(ij);
    V1(ij)= SS(ij)-GG1(ij);
    V2(ij)= SS(ij)-GG2(ij);
   end
end

Min=min(min(V));
Max=max(max(V));
Min=min(min(V1));
Max=max(max(V1));
Min=min(min(V2));
Max=max(max(V2));
for i=1:m
   for j=1:n
      VV(ij)=(V(ij)-Min)*255/(Max-Min);
      VV1(ij)=(V1(ij)-Min)*255/(Max-Min);
      VV2(ij)=(V2(ij)-Min)*255/(Max-Min);
   end
end
SumVV=VV/3+VV1/3+VV2/3;
VV=uint8(VV);
VV1=uint8(VV1);
VV2=uint8(VV2);
SumVV=uint8(SumVV);
S=uint8(S);
figuresubplot(151)imshow(S);
subplot(152)imshow(VV);
subplot(153)imshow(VV1);
subplot(154)imshow(VV2);
subplot(155)imshow(SumVV);






 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        740  2010-04-15 20:14  Retinex\SSR.m

     文件       1306  2010-04-15 20:17  Retinex\MySSR.m

     文件       1492  2010-04-15 20:19  Retinex\MSR.m

     目录          0  2010-04-20 09:23  Retinex

----------- ---------  ---------- -----  ----

                 3538                    4


评论

共有 条评论