yishionyang 发表于 2007-5-22 11:08

帮忙看看这段代码,谢谢

以下是一个关于Retinex算法的代码:
I=imread('1.jpg');
I=rgb2gray(I);
if(isgray(I))%判断是否为灰度图像
I=double(I)/255;
I=log(I);
=size(I);
constant=128;%mean2(I)
h=floor(M/2);
v=floor(N/2);
while(h>=1&v>=1)
for x=0:M-1
for y=0:N-1
   R_lightness(x,y)=log(I(x+h,y))-log(I(x,y));
   lightness(x,y)=constant+R_lightness(x,y);

   R_lightness(x,y)=log(I(x,y+v))-log(I(x,y));
   lightness(x,y)=constant+R_lightness(x,y);
end
end
h=floor(h/2);
   v=floor(v/2);
end
high=max(max(lightness));
low=min(min(lightness));
for x=0:M-1
for y=0:N-1
L(x,y)=((lightness(x,y)-max)/(max-min))*255;
end
end
imshow(uint8(L),[]);
end
运行结果成了这样了:
Warning: Log of zero.
??? Subscript indices must either be real positive integers or logicals.
请高手指教一下,谢谢!

pengweicai 发表于 2007-5-22 11:22

仔细检查 Log 函数里面的参数。也没有什么高招了。

eight 发表于 2007-5-22 13:03

原帖由 pengweicai 于 2007-5-22 11:22 发表 http://www.chinavib.com/forum/images/common/back.gif
仔细检查 Log 函数里面的参数。也没有什么高招了。

所言极是,没有数据文件,别人根本不能帮你测试,况且,这些越界问题自己调试一下就可以了

无水1324 发表于 2007-5-22 13:28

原帖由 yishionyang 于 2007-5-22 11:08 发表 http://www.chinavib.com/forum/images/common/back.gif
以下是一个关于Retinex算法的代码:
I=imread('1.jpg');
I=rgb2gray(I);
if(isgray(I))%判断是否为灰度图像
I=double(I)/255;
I=log(I);
=size(I);
constant=128;%mean2(I)
h=floor(M/2);
v= ...


x,y 不能从0开始的

yishionyang 发表于 2007-5-24 08:41

谢谢各位,问题暂时解决了,但是就是处理效果不大好
页: [1]
查看完整版本: 帮忙看看这段代码,谢谢