📄 createdata.m
字号:
function createdata(tenfile)
v=not(imread(tenfile));
imshow(v);
[n,m]=size(v);
pause;
x=round(n*2/3);
y=round(m*0.9);
x0=n;
y0=m;
for x0=n:-1:x+2,
s=sum(v(x0,y0-y:y0));
if (s>y*0.1+0.1)&&(s<y*0.8+0.8)&&(sum(sum(v(x0-x:x0,y0-y:y0)))>x*y*0.1),
break;
end
end
for y0=m:-1:y+2,
s=sum(v(x0-x:x0,y0));
if (s>x*0.1+0.1)&&(s<x*0.8+0.8)&&(sum(sum(v(x0-x:x0,y0-y:y0)))>x*y*0.2),
break;
end
end
v=(v(x0-x:x0,y0-y:y0));
[n,m]=size(v);
while (sum(v(1,:))<m/5)&&(n>2),
v=v(2:n,1:m);
[n,m]=size(v);
end
while (sum(v(:,1))<n/5)&&(m>2),
v=v(1:n,2:m);
[n,m]=size(v);
end
while (sum(v(n,:))<m/5)&&(n>2),
v=v(1:n-1,1:m);
[n,m]=size(v);
end
while (sum(v(:,m))<n/5)&&(m>2),
v=v(1:n,1:m-1);
[n,m]=size(v);
end
v= bwareaopen(v,90);
[BW_filled,L] = imfill(v,'holes');
boundaries = bwboundaries(BW_filled);
tongso=0;
tren=[];
duoi=[];
for k=1:length(boundaries),
b = boundaries{k};
minx=min(b(:,2));maxx=max(b(:,2));
miny=min(b(:,1));maxy=max(b(:,1));
dai=maxy-miny;
rong=maxx-minx;
if (dai>n*0.43)&&(rong<m/6),
%plot(b(:,2),b(:,1),'g','LineWidth',3);
tongso=tongso+1;
tren=[tren,miny];
duoi=[duoi,maxy];
end
end
if (tongso<6)&&(tongso>0),
v = imrotate(v,-6,'bilinear','loose');
[n,m]=size(v);
miny=round(sum(tren)/tongso);
maxy=max(duoi);
if maxy<n,
v(maxy-5:maxy,:)=0;
end
end
v= bwareaopen(v,490);
%imshow(v);
[n,m]=size(v);
%hold on;
[BW_filled,L] = imfill(v,'holes');
boundaries = bwboundaries(BW_filled);
ok=[];kq=[];
for k=1:length(boundaries),
b = boundaries{k};
minx=min(b(:,2));maxx=max(b(:,2));
miny=min(b(:,1));maxy=max(b(:,1));
dai=maxy-miny;
rong=maxx-minx;
if (dai>n*0.43)&&(rong<m/6),
%pause;
%plot(b(:,2),b(:,1),'g','LineWidth',3);
ok=[ok,k];
creator(v(miny:maxy,minx:maxx));
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -