求MATLAB大神,帮我解释一下这段代码的具体意思,用到什么知识,做PPT用

%%%%%ReadingofaRGBimagei=imread('touxiang.jpg');I=rgb2gray(i);BW=im2bw(I);%二值化figure,... %%%%%Reading of a RGB image
i=imread('touxiang.jpg');
I=rgb2gray(i);
BW=im2bw(I);% 二值化
figure,imshow(BW)

[n1n2]=size(BW);
r=floor(n1/10);% 分成10块,行
c=floor(n2/10);% 分成10块,列 %取最近的较小整数
x1=1;x2=r;% 对应行初始化
s=r*c;%块面积

fori=1:10 %以图像尺寸百分之一的窗口大小滑动
y1=1;y2=c; % 对应列初始化
for j=1:10
if (y2<=c | y2>=9*c) | (x1==1 |x2==r*10)%这一判断条件就是把图像最外围全部归零
loc=find(BW(x1:x2, y1:y2)==0);%find查找矩阵中满足条件的位置,[r,c,v]=find(X),r,c为不为零元素的行列,v为其数值,X也可由逻辑表达式替代
%这里loc应该是BW窗口中的为黑像素的个数,就是后面的o值,在下面的if中做了一个条件判断
[o p]=size(loc);
pr=o*100/s; % 黑色像素所占的比例数
if pr<=100
BW(x1:x2, y1:y2)=0;
r1=x1;r2=x2;s1=y1;s2=y2;
pr1=0;
end
imshow(BW);
end
y1=y1+c; % 列跳跃
y2=y2+c; % 列跳跃
end

x1=x1+r;% 行跳跃
x2=x2+r; % 行跳跃
end
figure,imshow(BW)

L =bwlabel(BW,8); ;%标记图像中的八连通区域
BB = regionprops(L, 'BoundingBox'); %区域特征,boundingbox是指包围每个区域的最小矩形,数目与num相等
%区域特征还包含area,即每个区域的像素数centroid
%即每个区域的重心
BB1=struct2cell(BB); %此函数是将结构体中各变量的值分别提取出了组成一个元胞矩阵
BB2=cell2mat(BB1);%将单个的元胞矩阵组成一个单一矩阵

[s1s2]=size(BB2);%因为BB矩阵存储的是矩形的对角坐标,是四位,所以又元组矩阵转变成单一矩阵
mx=0;
fork=3:4:s2-1%每四个数字对应一个矩形,matlab中的数组下标都是从1 开始
p=BB2(1,k)*BB2(1,k+1); % 宽*高
if p>mx &(BB2(1,k)/BB2(1,k+1))<1.8% 如果满足面积块大,而且宽/高<1.8

mx=p;
j=k;
end
end
figure,imshow(I);
holdon;
rectangle('Position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'EdgeColor','r')
展开
 我来答
血孓彡
2014-05-28 · 超过10用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:18.2万
展开全部
我脑袋昏了
追问
别逗别逗 急用
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式