% 你的代码没有仔细看,有问题在说吧,结果在R中
n = 452;
R = zeros(n,1);
for p = 1:n
fn = ['000' num2str(p)];
fn = fn(length(fn)-1:end);
fn = ['top' fn '.bmp'];
I=imread(fn);
Zmax=max(max(I));
Zmin=min(min(I));
TK=(Zmax+Zmin)/2;%初始阈值
flag=1;
[m,n]=size(I);
while(flag)
fg=0;
bg=0;
fgsum=0;
bgsum=0;
for i=1:m
for j=1:n
tmp=I(i,j);
if(tmp>=TK)
fg=fg+1;
fgsum=fgsum+double(tmp);
else
bg=bg+1;
bgsum=bgsum+double(tmp);
end
end
end
u1=fgsum/fg;
u2=bgsum/bg;
TKTmp=uint8((u1+u2)/2);
if(TKTmp==TK)
flag=0;
else
TK=TKTmp;
end
end
BCT = sum(newI (:)==0);
R(p) = BCT;
end;
改成函数,输入参数就是图片的路径,然后按照你写的就行。
调用时,外面加上一层for循环。
另外dir可以读取当前路径下的所有文件名(即使改名字也是可以进行的)。