matlab如何批量读取图片并作分析

2025-03-17 10:15:35
推荐回答(2个)
回答1:

% 你的代码没有仔细看,有问题在说吧,结果在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;

回答2:

改成函数,输入参数就是图片的路径,然后按照你写的就行。

调用时,外面加上一层for循环。

另外dir可以读取当前路径下的所有文件名(即使改名字也是可以进行的)。