作业帮 > 综合 > 作业

MATLAB中的函数输出问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 03:19:56
MATLAB中的函数输出问题
在MATLAB中读入一幅图像I;
ZMax=max(max(I));
iSize=size(I);
TK=210;
s=0;
for i=1:iSize(1)
for j=1:iSize(2)
tmp=I(i,j);
Uij=(tmp+ZMax-2*TK)/(2*ZMax-2*TK);
UMin=min(Uij,1-Uij);
s=s+UMin;
end
end
D=2*s/(ZMax*ZMin)
为什么输出的结果为0,新手请大家指教~谢谢
ZMin 压根没定义过.这个程序运行到最后一步不出错?
再问: 不好意思,写错了,D=2*s/(iSize(1)*iSize(2));
再答: 在tmp=l(i,j);这一句后面加上一句 tmp=double(tmp); ZMax=max(max(I));后面也得加上 Zmax=double(Zmax); 就好了。另外你这个程序写的就是C代码,效率太低了啊。。完全不是matlab的编法。 顺便给你程序优化了。这才是matlab程序,效率千差万别: I=double(I); ZMax=max(max(I)); ZMax=double(ZMax); iSize=size(I); TK=210; U=(I+ZMax-2*TK)./((2*ZMax-2*TK)); Umin = min(U,1-U); s=sum(sum(Umin)); D=2*s/(iSize(1)*iSize(2));
再问: 谢谢~我是初学者,不知道怎么编。。。 顺便问一下,你知道判断图像分割效果的评估指标有哪些,如何用代码实现呢?我找了半天没找到,只有一些理论公式,我就在那瞎编程序- -
再答: 呵呵,这个问题太大了。恕我解答不了。图像分割的方法太多了,理论上一切图像处理的方法都可以用来进行图像分割,这取决于你分割的目的和预期达到的效果。评价指标也是和你分割的目的息息相关。因此理论上你可以采用任何图像质量的评价指标来进行评价。