回 帖 发 新 帖 刷新版面

主题:[讨论]对数增强的图象处理程序?

大家好,我用对数变化方法进行图象增强的程序:公式s=c*log(1+r)(r为原来的灰度值)
c = str2double((inputdlg('please input c ', 'INPUT scale factor', 1, {'0.5'})));
I=imread('f:\labimages\Fig3.08(a).jpg');
[M,N]=size(I);
s= zeros(M,N);
subplot(2,1,1);
imshow(I);
title('原始图像')
for a=0:1:M-1
    for b=0:1:N-1
  s(a,b)=unit8(c*log(1+I(a,b)));
     end
end
imwrite(s, 'pic0301.jpg', 'jpg');
subplot(2,1,2);
imshow(s);
title('对数增强图像')
运行出现错误:
??? Attempted to access I2(0,0); index must be a positive integer or logical.

Error in ==> Proj0301 at 11
  s(a,b)=unit8(c*log(1+I2(a,b)));

我对于MATLAB中数据的类型及转化 这些概念很模糊,请教高手哦!

回复列表 (共3个回复)

沙发

matlab里的矩阵起始是1

板凳

for a=0:1:M-1
    for b=0:1:N-1
  s(a,b)=unit8(c*log(1+I(a,b)));
     end
end
这是C的习惯

3 楼

孙燕子的“从1开始”

我来回复

您尚未登录,请登录后再回复。点此登录或注册