⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2shuzishibie.asv

📁 提取图片中数字的MATLAB程序
💻 ASV
字号:
bw=imread('D:\MATLAB7\work\5f00.bmp');
[x,y]=size(bw);			%数组num,sum保存着扫描线穿越黑像素区域互不相邻的交点数
n=zeros(1,8);			%从上到下共8个部分,每个部分的最大交点数
m=zeros(1,8);			%从左到右共8个部分,每个部分的最大交点数
	    if(x/8-floor(x/8))>=0.5,h=floor(x/8)+1;else h=floor(x/8);
	end
	    if(y/8-floor(y/8))>=0.5,w=floor(y/8)+1;else w=floor(y/8);
	end
  for i=1:x
	count=0;            %连续黑像素点的个数
	  for j=1:y
		pixels=impixel(bw,j,i);
		if(pixels==[0 0 0])
			count=count+1;
		elseif(count>1)
			num(i)=num(i)+1;
			count=0;
		end
	   end
   end

    for i=1:7
	n(i)=num(1+(i-1)*h);
	  for j=2:h
		if(n(i)<num(j+(i-1)*h)),n(i)=num(j+(i-1)*h);
		end
	end
   end
	k=1+7*h;
	n(8)=num(k);
	for j=(k+1):x
		if n(8)<num(j),n(8)=num(j);
		end
	end
for i=1:y
  count=0;              %连续黑像素点的个数
for j=1:x
    pixels=impixel(bw,i,j);
    if(pixels==[0 0 0])
        count=count+1;
    elseif(count>1)
        sum(i)=sum(i)+1;
        count=0;
        end
    end
end

for i=1:7
    m(i)=sum(1+(i-1)*w);
    for j=2:w
        if(m(i)<sum(j+(i-1)*w)),m(i)=sum(j+(i-1)*w);
        end
    end
end
    k=1+7*w;
    m(8)=sum(k);
    for j=(k+1):y
     if m(8)<sum(j),m(8)=sum(j);
     end
end
if((n(1)==1)&(n(2)==2|n(2)==1)&n(3)==2&n(4)==2&n(5)==2&n(6)==2&(n(7)==2|n(7)==1)&(n(8)==1|n(8)==0)&(m(1)==1)&m(2)==1&m(3)==1&m(4)==2&(m(5)==2)&(m(6)==1|m(6)==2)&(m(7)==1)&(m(8)==1))
    msgbox('此数字为0');
end
if((x/y)>2.4)
    msgbox('此数字为1');
return;
end

if(n(1)==1&n(2)==1&n(3)==2&(n(4)==1|n(4)==2)&n(5)==1&(n(6)==1)&(n(7)==1)&(n(8)==1)&(m(1)==2|m(1)==1)&(m(2)==2)&(m(3)==3|m(3)==2)&(m(4)==3|m(4)==2)&(m(5)==3|m(5)==2)&(m(6)==2|m(6)==3)&(m(7)==2|m(7)==1)&(m(8)==1|m(8)==0|m(8)==2))
    msgbox('此数字为2');
end
if((n(1)==1)&(n(2)==2|n(2)==1)&(n(3)==2)&n(4)==1&(n(5)==1|n(5)==2)&(n(6)==1|n(6)==2)&(n(7)==2|n(7)==1)&(n(8)==1|n(8)==0)&(m(1)==1|m(1)==2)&(m(2)==2)&(m(3)==2)&(m(4)==3)&(m(5)==3)&(m(6)==2|m(6)==1)&(m(7)==2|m(7)==1)&(m(8)==2))
    msgbox('此数字为3');
end
if(n(1)==1&n(2)==1&(n(3)==1)&(n(4)==1)&(n(5)==2|n(5)==1)&(n(6)==2|n(6)==1)&(n(7)==1)&(n(8)==1)&(m(1)==1)&(m(2)==1)&(m(3)==1)&(m(4)==2|m(4)==1)&(m(5)==2|m(5)==1)&(m(6)==1)&(m(7)==1|m(7)==2)&(m(8)==1|m(8)==0))
    msgbox('此数字为4');
end
if(n(1)==1&n(2)==1&n(3)==1&(n(4)==1)&(n(5)==2|n(5)==1)&(n(6)==1|n(6)==2)&(n(7)==2)&n(8)==1
&...
(m(1)==1|m(1)==2)&(m(2)==2)&m(3)==2&(m(4)==3|m(4)==2)&(m(5)==3)&(m(6)==2|m(6)==3)&(m(7)==2)
&(m(8)==2|m(8)==1|m(8)==0))
msgbox('此数字为5');
end
if(n(1)==1&(n(2)==2|n(2)==1)&(n(3)==2)&(n(4)==1|n(4)==2)&(n(5)==2|n(5)==1)&(n(6)==2)&(n(7)==2)
&n(8)==1&...
(m(1)==1)&(m(2)==1)&m(3)==1&(m(4)==3|m(4)==2)&(m(5)==3)&(m(6)==3|m(6)==2)&(m(7)==2)&
(m(8)==2))
msgbox('此数字为6');
end
if(n(1)==1&n(2)==1&n(3)==1&n(4)==1&n(5)==1&(n(6)==1)&(n(7)==1)&(n(8)==1)&...
(m(1)==1)&(m(2)==1|m(2)==2)&(m(3)==2|m(3)==1)&(m(4)==2)&(m(5)==2|m(5)==1)&(m(6)==1)&(m(7)==1)
&(m(8)==1))
msgbox('此数字为7');
end
if((n(1)==1)&(n(2)==2|n(2)==1)&n(3)==2&(n(4)==2|n(4)==1)&(n(5)==2|n(5)==1)&(n(6)==2|n(6)==1)
&(n(7)==2|n(7)==1)&(n(8)==1|n(8)==0)&...
(m(1)==2|m(1)==1)&(m(2)==2|m(2)==1)&(m(3)==1)&(m(4)==3|m(4)==2|m(4)==1)&(m(5)==3)&
(m(6)==2|m(6)==1|m(6)==3)&(m(7)==1|m(7)==2)&(m(8)==1|m(8)==2))
msgbox('此数字为8');
end
if((n(1)==1)&(n(2)==2|n(2)==1)&n(3)==2&(n(4)==2|n(4)==1)&(n(5)==1)&(n(6)==1|n(6)==2)&
(n(7)==2|n(7)==1)&(n(8)==1|n(8)==0)&...
(m(1)==1|m(1)==2)&(m(2)==2)&m(3)==2&(m(4)==3)&(m(5)==3)&(m(6)==2|m(6)==1)&(m(7)==1)&
(m(8)==1))
msgbox('此数字为9');
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -