以下代码用于裁剪图像的多余白色部分(为了减小图像尺寸)。即如果图像中出现“A”,那么顶部,底部,左侧和右侧的所有多余白色部分都将被移除。
在此代码中,我无法理解“sum”功能的使用,请帮助...
% Find the boundary of the image
[y2temp x2temp] = size(bw);
x1=1;
y1=1;
x2=x2temp;
y2=y2temp;
% Finding left side blank spac es
cntB=1;
while (sum(bw(:,cntB))==y2temp)
x1=x1+1;
cntB=cntB+1;
end
% Finding right side blank spaces
cntB=1;
while (sum(bw(cntB,:))==x2temp)
y1=y1+1;
cntB=cntB+1;
end
% Finding upper side blank spaces
cntB=x2temp;
while (sum(bw(:,cntB))==y2temp)
x2=x2-1;
cntB=cntB-1;
end
% Finding lower side blank spaces
cntB=y2temp;
while (sum(bw(cntB,:))==x2temp)
y2=y2-1;
cntB=cntB-1;
end
% Crop the image to the edge
bw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);
答案 0 :(得分:0)
这段代码在较少的行中也可能做同样的事情。
bw_bin=bw==1; %make it binary
row = all(bw_bin); %checks if they are all one
column = all(bw_bin');
bw=bw(find(column==0,1,'first'):find(column==0,1,'last'),find(row==0,1,'first'):find(row==0,1,'last')); %ake only the rows and columns where this is not the case