声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1147|回复: 5

[图像处理] 帮帮我吧,实在是看不懂

[复制链接]
发表于 2009-5-25 19:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我有一个关于Retinex 算法的代码,里面调用的ssr函数我实在看不懂,哪位高人能帮我解释下,特别是红字部分的
function img2=SSR(img,scale)
im=double(img)+1;
%im=zeros(2*size(img,1),2*size(img,2),size(img,3));
%for i=1:size(img,3)
%    im(:,:,i)=[img(:,:,i) fliplr(img(:,:,i));flipud(img(:,:,i)) flipud(fliplr(img(:,:,i)))];
%end
fim=fft2(im);
imag=size(scale,2)*log(im);
for i=1:size(scale,2)
    [x y]=meshgrid((-(size(img,2)-1)/2):(size(img,2)/2),(-(size(img,1)-1)/2):(size(img,1)/2));
    gauss=exp(-(x.^2+y.^2)/scale(i)^2);
    gaus=gauss/sum(gauss(:));
    %gaus=[gauss fliplr(gauss);flipud(gauss) flipud(fliplr(gauss))];
    fgauss=abs(fft2(gaus,size(im,1),size(im,2)));
    for j=1:size(im,3)
        fg(:,:,j)=fgauss;
    end
    imag=imag-log(abs(ifft2(fg.*fim)));
end
%img2=imag(1:size(img,1),1:size(img,2),:);
img2=imag/(size(scale,2)*(4-size(im,3)));
回复
分享到:

使用道具 举报

发表于 2009-5-25 19:34 | 显示全部楼层
楼主应该对相应的函数用谷歌或百度做一查询。
meshgrid:
[x,y]=meshgrid(xa,ya) 当xa,ya分别为m维和n维行向量,得到x和y均为n行m列矩阵。meshgrid常用于生成x-y平面上的网格数据;
sum:
对某向量各元素求和;
abs: 求绝对值;
fft2:二维傅里叶变换。

评分

1

查看全部评分

 楼主| 发表于 2009-5-25 19:43 | 显示全部楼层
谢谢楼上的,你说的这个我都查了,但联系到函数里我又不懂了:'( 这是我论文中程序的一部分,实在是看不太懂特别是这句gaus=gauss/sum(gauss(:));中是高斯函数求和吗?gauss(:)这里里面怎么是:号,是什么意思啊?
发表于 2009-5-25 19:49 | 显示全部楼层
也是一个为论文搞程序的人,和我一样。
:hug:

举个例子:
guage  = (1,2,3,4);
guage/sum(guage(:)) = (1/(1+2+3+4), 2/10, 3/10,4/10)
明白了吧?
 楼主| 发表于 2009-5-25 19:52 | 显示全部楼层
哦……谢谢!为了论文头都弄大了
发表于 2009-5-25 20:03 | 显示全部楼层
matlab对于矩阵的操作一般是基于列的,如果要求矩阵所有元素和,可以先将矩阵转化为矢量,如sum(guage(:)) ,也可以直接求,如sum(sum(guage))

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 06:03 , Processed in 0.091261 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表