永发信息网

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

答案:2  悬赏:30  手机版
解决时间 2021-02-04 11:22
本人小白,自己编了个代码,能把一张图片二值化,然后读取图中黑色区域的像素点数,但我想实现批量读取,然后处理的目的,求大神帮忙

I=imread('top051.bmp');
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)有可能的话,请好心朋友在这个基础上做些修改,已达到批量读取图片,并批量输出黑色区域像素点数的目的,在此谢过了,图片名称是由top001、top002、top003..........top452,这样的顺序编排的,请求详细答案,本人实在小白。。。。
最佳答案
for i=1:452
if i<10
str = ['top00',num2str(i),'.bmp'];
else if i<100
str = ['top0',num2str(i),'.bmp'];
else
str = ['top',num2str(i),'.bmp'];
end
I=imread(str);
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
end
全部回答
% 你的代码没有仔细看,有问题在说吧,结果在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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
烧仙草做好了放进去冷藏还是冷冻
芳芳干洗店(仙人城路)地址在什么地方,我要处
为什么只有少数金属有磁性,而大多物质都没有?
六号农场六分场地址在什么地方,想过去办事
沙田柚从幼苗到结果需要多少的时间,一棵幼苗
韩式良家洗衣(解放路总店)地址在什么地方,我
生病了才知道谁最爱你
诗奈尔高端洗衣会所(院里路)地址在什么地方,
孔子提出“畏天命”的观点,说“获罪于天,无
万安擂茶果品店地址有知道的么?有点事想过去
青岛内蒙古路上的劳务市场搬到哪里去了?
UCC国际洗衣(夏埠店)地址在哪,我要去那里办
哈尔滨黑大游泳馆多钱?C区
填空题升国旗时,人站在地面拉动绳子,能够让
赛维健康洗衣生活馆(体育馆东路)怎么去啊,我
推荐资讯
嘴上长痘痘是什么原因
提出不能“扶起东边倒却西边”力主收复新疆的
(1十1十2)一直加到一百最后等于多少
棚户区改造补偿时土地证可以作为补偿依据吗?
塘厦有没有到江西吉安遂川的大巴车?
君辰汽车修理厂地址在哪,我要去那里办事
羊角塘地址在什么地方,想过去办事
EXCEL 符合条件的数据调入到另一个工作表中
金桂苑休闲庄在什么地方啊,我要过去处理事情
多丽数码照相怎么去啊,我要去那办事
手被草割破了怎么办
离婚律师17集吴秀波开300C时戴的墨镜什么牌子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?