gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第17章/代码17-8.txt

    
function intrec(Z)
%INTREC 实现数学形态学字符识别 
A= imread ('zero.bmp');%将0字符图像读入到MATLAB中
B= imread ('one.bmp'); %将1字符图像读入到MATLAB中
C= imread ('two.bmp'); %将2字符图像读入到MATLAB中
D= imread ('three.bmp'); %将3字符图像读入到MATLAB中
E= imread ('four.bmp'); %将4字符图像读入到MATLAB中
F= imread ('five.bmp'); %将5字符图像读入到MATLAB中
G= imread ('six.bmp'); %将6字符图像读入到MATLAB中
H= imread ('seven.bmp'); %将7字符图像读入到MATLAB中
I= imread ('eight.bmp'); %将8字符图像读入到MATLAB中
J= imread ('nine.bmp'); %将9字符图像读入到MATLAB中
SE = strel('square',3); %构造结构元素对象
K=imdilate(A,SE);A2=K-A; %矩阵A进行膨胀, 得到矩阵A2
L=imdilate(B,SE);B2=L-B; %对字符图像矩阵B进行膨胀运算,得到矩阵B2
M=imdilate(C,SE);C2=M-C; %对字符图像矩阵C进行膨胀运算,得到矩阵C2
N=imdilate(D,SE);D2=N-D; %对字符图像矩阵D进行膨胀运算,得到矩阵D2
O=imdilate(E,SE);E2=O-E; %对字符图像矩阵E进行膨胀运算,得到矩阵E2
P=imdilate(F,SE);F2=P-F; %对字符图像矩阵F进行膨胀运算,得到矩阵F2
Q=imdilate(G,SE);G2=Q-G; %对字符图像矩阵G进行膨胀运算,得到矩阵G2
R=imdilate(H,SE);H2=R-H; %对字符图像矩阵H进行膨胀运算,得到矩阵H2
S=imdilate(I,SE);I2=S-I; %对字符图像矩阵I进行膨胀运算,得到矩阵I2
T=imdilate(J,SE);J2=T-J; %对字符图像矩阵J进行膨胀运算,得到矩阵J2
disp('The digits found in the image are:');
if ~isempty(nonzeros(bwhitmiss(Z,A,A2))) %击中击不中运算
  disp('0');
end
if ~isempty(nonzeros(bwhitmiss(Z,B,B2))) %击中击不中运算
    disp('1');
end
if ~isempty(nonzeros(bwhitmiss(Z,C,C2))) %击中击不中运算
   disp('2');
end
if ~isempty(nonzeros(bwhitmiss(Z,D,D2))) %击中击不中运算
    disp('3');
end
if ~isempty(nonzeros(bwhitmiss(Z,E,E2))) %击中击不中运算
   disp('4');
end
if ~isempty(nonzeros(bwhitmiss(Z,F,F2))) %击中击不中运算
   disp('5');
end
if ~isempty(nonzeros(bwhitmiss(Z,G,G2))) %击中击不中运算
   disp('6');
end
if ~isempty(nonzeros(bwhitmiss(Z,H,H2))) %击中击不中运算
   disp('7');
end
if ~isempty(nonzeros(bwhitmiss(Z,I,I2))) %击中击不中运算
   disp('8');
end
if ~isempty(nonzeros(bwhitmiss(Z,J,J2))) %击中击不中运算
   disp('9');
end