日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于MATLAB印刷体汉字识别解析

發布時間:2023/12/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于MATLAB印刷体汉字识别解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、課題研究的意義

漢字已有數千年的歷史,是中華民族文化的重要結晶,閃爍著中國人民智慧的光芒。同時也是世界上使用人數最多和數量最多的文字之一。現如今,漢字印刷材料的數量大大增加,一些專業單位所接觸的印刷材料更是浩如煙海,信息量均是爆炸性增長。然而,漢字是非字母化、非拼音化的文字,因此,如何將漢字快速高效地輸入計算機,是信息處理的一個關鍵問題,也是關系到計算機技術能否在我國真正普及的關鍵問題,更是傳播與弘揚中華民族悠久歷史文化的關鍵問題。而且隨著勞動力價格的升高,利用人工方法進行漢字輸入也將面臨經濟效益的挑戰。因此,對于大量已有的文檔資料,漢字自動識別輸入就成為了最佳的選擇。因此,漢字識別技術也越來越受到人們的重視。漢字識別是一門多學科綜合的研究課題,它不僅與人工智能的研究有關,而且與數字信號處理、圖像處理、信息論、計算機科學、幾何學、統計學、語言學、生物學、模糊數學、決策論等都有著千絲萬縷的聯系。一方面各學科的發展給它的研究提供了工具;另一方面,它的研究與發展也必將促進各學科的發展。因而有著重要的實用價值和理論意義。

二、算法流程


圖1-1漢字識別流程框圖



三、識別過程


圖2-3 標準圖像





圖2-4 標準圖像轉灰度圖像



圖2-5 標準圖像均值濾波圖像




圖2-6 標準圖像二值化圖像




圖2-7 標準圖像識別結果



通過對標準圖像識別學習訓練,然后對輸入亂序圖像(見圖2-8)進行識別,過程中轉灰度(見圖2-9),均值濾波(見圖2-10),二值化(見圖2-11),識別結果(見圖2-12)。



圖2-8 亂序圖像



圖2-9 亂序圖像轉灰度圖像




圖2-10 亂序圖像均值濾波圖像




圖2-11 亂序圖像二值化圖像




圖2-12 亂序圖像識別結果




由以上實驗結果可以看出,當輸入標準圖像,經過轉灰度,均值濾波,二值化,識別輸出。然后,輸入亂序圖像在經過轉灰度,均值濾波,二值化,特征提取,匹配識別后,系統能夠將亂序圖像中的圖像識別輸出。說明系統基本實現預先設想的功能,能夠在學習標準圖像識別后建立標準庫,并根據標準字庫與以后輸入的圖像進行匹配識別輸出。但由于系統比較簡單,實現的功能也比較單一,要想實現較完備功能還需進一步完善。




四、部分參考源碼




%亂序圖像識別:load bp; G=imread('');%讀取 I=rgb2gray(G); %--------轉灰度圖象 B1=filter2(fspecial('average',3),I)/255; %以[3,3]為模板均值濾波 %--------均值濾波 d=im2bw(B1,; %--------二值 k1=1;k2=1;s=sum(d');j=2;a=1;c=1 [m, n]=size(d'); while s(j)==mj=j+1; end k1=j; while s(j)~=m && j<=n-1j=j+1; end k2=j-1; d=d((k1:k2),:); %--------行分割 [m,n]=size(d); k1=1;k2=1;s=sum(d);j=2;a=1;c=1 for a=1:16 while s(j)==mj=j+1;endk1=j;while s(j)~=m && j<=n-1j=j+1;endk2=j-1; %--------列分割if c==1b1=d(:,(k1:k2));imwrite(b1,'');t1=tezhengtiqu(b1);P_test = [t1']; y = sim(net,P_test); %用訓練出來的神經網絡計算數據的第%P_test行word=jieguoxianshi(y)end %--------第1個字符 if c==2b2=d(:,(k1:k2));imwrite(b2,''); t2=tezhengtiqu(b2); %用十三點特征提取法提取特征P_test = [t2]; y = sim(net,P_test'); %用訓練出來的神經網絡計算數據的 %第P_test行word=jieguoxianshi(y) end %--------第2個字符 if c==3b3=d(:,(k1:k2));imwrite(b3,'');t3=tezhengtiqu(b3);P_test = [t3]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第3個字符 if c==4b4=d(:,(k1:k2));imwrite(b4,'');t4=tezhengtiqu(b4);P_test = [t4]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第4個字符 if c==5b5=d(:,(k1:k2));imwrite(b5,'');t5=tezhengtiqu(b5);P_test = [t5]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第5個字符 if c==6b6=d(:,(k1:k2));imwrite(b6,'');t6=tezhengtiqu(b6);P_test = [t6]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第6個字符 if c==7b7=d(:,(k1:k2));imwrite(b7,'');t7=tezhengtiqu(b7);P_test = [t7]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第7個字符 if c==8b8=d(:,(k1:k2));imwrite(b8,'');t8=tezhengtiqu(b8);P_test = [t8]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第8個字符 if c==9b9=d(:,(k1:k2));imwrite(b9,'');t9=tezhengtiqu(b9);P_test = [t9]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第9個字符 if c==10b10=d(:,(k1:k2));imwrite(b10,'');t10=tezhengtiqu(b10);P_test = [t10]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第10個字符 if c==11b11=d(:,(k1:k2));imwrite(b11,'');t11=tezhengtiqu(b11);P_test = [t11]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第11個字符 if c==12b12=d(:,(k1:k2));imwrite(b12,'');t12=tezhengtiqu(b12);P_test = [t12]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第12個字符 if c==13b13=d(:,(k1:k2));imwrite(b13,'');t13=tezhengtiqu(b13);P_test = [t13]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第13個字符 if c==14b14=d(:,(k1:k2));imwrite(b14,'');t14=tezhengtiqu(b14);P_test = [t14]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第14個字符 if c==15b15=d(:,(k1:k2));imwrite(b15,'');t15=tezhengtiqu(b15);P_test = [t15]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第15個字符 if c==16b16=d(:,(k1:k2));imwrite(b16,'');t16=tezhengtiqu(b16);P_test = [t16]; y = sim(net,P_test');word=jieguoxianshi(y) end %--------第16個字符c=c+1; end subplot(2,8,1),imshow(''); subplot(2,8,2),imshow(''); subplot(2,8,3),imshow(''); subplot(2,8,4),imshow(''); subplot(2,8,5),imshow(''); subplot(2,8,6),imshow(''); subplot(2,8,7),imshow(''); subplot(2,8,8),imshow(''); subplot(2,8,9),imshow(''); subplot(2,8,10),imshow(''); subplot(2,8,11),imshow(''); subplot(2,8,12),imshow(''); subplot(2,8,13),imshow(''); subplot(2,8,14),imshow(''); subplot(2,8,15),imshow(''); subplot(2,8,16),imshow('');%標準圖像識別:load fbp; G=imread('');%讀取 I=rgb2gray(G); %--------轉灰度圖象 B1=filter2(fspecial('average',3),I)/255; %--------均值濾波 imshow(d); k1=1;k2=1;s=sum(d');j=2;a=1;c=1 [m,n]=size(d'); while s(j)==mj=j+1; end k1=j; while s(j)~=m && j<=n-1j=j+1; end k2=j-1; d=d((k1:k2),:); %--------行分割 [m,n]=size(d); k1=1;k2=1;s=sum(d);j=2;a=1;c=1 for a=1:16 while s(j)==mj=j+1;endk1=j;while s(j)~=m && j<=n-1j=j+1;endk2=j-1; %--------列分割if c==1b1=d(:,(k1:k2));imwrite(b1,'');t1=tezhengtiqu(b1);P_test = [t1']; y = sim(net,P_test);word=fbmjieguoxianshi(y)end %--------第1個字符 if c==2b2=d(:,(k1:k2));imwrite(b2,'');t2=tezhengtiqu(b2);P_test = [t2]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第2個字符 if c==3b3=d(:,(k1:k2));imwrite(b3,'');t3=tezhengtiqu(b3);P_test = [t3]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第3個字符 if c==4b4=d(:,(k1:k2));imwrite(b4,'');t4=tezhengtiqu(b4);P_test = [t4]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第4個字符 if c==5b5=d(:,(k1:k2));imwrite(b5,'');t5=tezhengtiqu(b5);P_test = [t5]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第5個字符 if c==6b6=d(:,(k1:k2));imwrite(b6,'');t6=tezhengtiqu(b6);P_test = [t6]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第6個字符 if c==7b7=d(:,(k1:k2));imwrite(b7,'');t7=tezhengtiqu(b7);P_test = [t7]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第7個字符 if c==8b8=d(:,(k1:k2));imwrite(b8,'');t8=tezhengtiqu(b8);P_test = [t8]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第8個字符 if c==9b9=d(:,(k1:k2));imwrite(b9,'');t9=tezhengtiqu(b9);P_test = [t9]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第9個字符 if c==10b10=d(:,(k1:k2));imwrite(b10,'');t10=tezhengtiqu(b10);P_test = [t10]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第10個字符 if c==11b11=d(:,(k1:k2));imwrite(b11,'');t11=tezhengtiqu(b11);P_test = [t11]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第11個字符 if c==12b12=d(:,(k1:k2));imwrite(b12,'');t12=tezhengtiqu(b12);P_test = [t12]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第12個字符 if c==13b13=d(:,(k1:k2));imwrite(b13,'');t13=tezhengtiqu(b13);P_test = [t13]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第13個字符 if c==14b14=d(:,(k1:k2));imwrite(b14,'');t14=tezhengtiqu(b14);P_test = [t14]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第14個字符 if c==15b15=d(:,(k1:k2));imwrite(b15,'');t15=tezhengtiqu(b15);P_test = [t15]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第15個字符 if c==16b16=d(:,(k1:k2));imwrite(b16,'');t16=tezhengtiqu(b16);P_test = [t16]; y = sim(net,P_test');word=fbmjieguoxianshi(y) end %--------第16個字符c=c+1; end subplot(2,8,1),imshow(''); subplot(2,8,2),imshow(''); subplot(2,8,3),imshow(''); subplot(2,8,4),imshow(''); subplot(2,8,5),imshow(''); subplot(2,8,6),imshow(''); subplot(2,8,7),imshow(''); subplot(2,8,8),imshow(''); subplot(2,8,9),imshow(''); subplot(2,8,10),imshow(''); subplot(2,8,11),imshow(''); subplot(2,8,12),imshow(''); subplot(2,8,13),imshow(''); subplot(2,8,14),imshow(''); subplot(2,8,15),imshow(''); subplot(2,8,16),imshow('');%標準圖像識別結果顯示:function word=jieguoxianshi(y) %顯示結果的函數 y=[round(y(1)),round(y(2)),round(y(3)), round(y(4)),round(y(5)),round(y(6)), round(y(7)),round(y(8)),round(y(9)), round(y(10)),round(y(11)),round(y(12)), round(y(13)),round(y(14)),round(y(15)), round(y(16))]; [C,I]=max(y); if I==16word='匣'; elseif I==15word='囡'; elseif I==14word='圖'; elseif I==13word='國'; elseif I==12word='盅'; elseif I==11word='匡'; elseif I==10word='盞'; elseif I==9word='固'; elseif I==8word='監'; elseif I==7word='盂'; elseif I==6word='盒'; elseif I==5word='團'; elseif I==4word='盈'; elseif I==3word='団'; elseif I==2word='盔'; elseif I==1word='因'; end%亂序圖像識別結果顯示function word=jieguoxianshi(y) %顯示結果的函數 y=[round(y(1)),round(y(2)),round(y(3)), round(y(4))]; if y==[0,0,0,0]word='匣'; elseif y==[0,0,0,1,]word='囡'; elseif y==[0,0,1,0]word='圖'; elseif y==[0,0,1,1]word='國'; elseif y==[0,1,0,0]word='盅'; elseif y==[0,1,0,1]word='匡'; elseif y==[0,1,1,0]word='盞'; elseif y==[0,1,1,1]word='固'; elseif y==[1,0,0,0]word='監'; elseif y==[1,0,0,1]word='盂'; elseif y==[1,0,1,0]word='盒'; elseif y==[1,0,1,1]word='團'; elseif y==[1,1,0,0]word='盈'; elseif y==[1,1,0,1]word='団'; elseif y==[1,1,1,0]word='盔'; elseif y==[1,1,1,1]word='因'; end%特征提取:function PN=moshishibie(d) %特征提取函數 %通過13點特征提取法提取特征 %d為已處理圖象 [m,n]=size(d); k1=1; for i=1:m/4for j=1:n/2if d(i,j)==1k1=k1+1;endend end k2=1; for i=1:round(m/4)for j=round(n/2):round(n)if d(i,j)==1k2=k2+1;endend end k3=1; for i=round(m/4):m/2for j=1:n/2if d(i,j)==1k3=k3+1;endend end k4=1; for i=round(m/4):m/2for j=round(n/2):nif d(i,j)==1k4=k4+1;endend end k5=1; for i=round(m/2):round(m*3/4)for j=1:round(n/2)if d(i,j)==1k5=k5+1;endend end k6=1; for i=round(m/2):round(m*3/4)for j=round(n/2):nif d(i,j)==1k6=k6+1;endend end k7=1; for i=round(m*3/4):mfor j=1:round(n/2)if d(i,j)==1k7=k7+1;endend end k8=1; for i=round(m*3/4):mfor j=round(n/2):nif d(i,j)==1k8=k8+1;endend end k9=k3+k4; k10=k5+k6; k11=k1+k3+k5+k7; k12=k2+k4+k6+k8; k13=k11+k12; k=[k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,13]; [PN,minp,maxp] = premnmx(k); %歸一化附 錄2 Neural Network object: %神經網絡的對象;architecture: %結構;numInputs: 1numLayers: 3biasConnect: [1; 1; 1]inputConnect: [1; 0; 0]layerConnect: [0 0 0; 1 0 0; 0 1 0]outputConnect: [0 0 1]targetConnect: [0 0 1]numOutputs: 1 (read-only)numTargets: 1 (read-only)numInputDelays: 0 (read-only)numLayerDelays: 0 (read-only)subobject structures: %子對象結構inputs: {1x1 cell} of inputslayers: {3x1 cell} of layersoutputs: {1x3 cell} containing 1 outputtargets: {1x3 cell} containing 1 targetbiases: {3x1 cell} containing 3 biasesinputWeights: {3x1 cell} containing 1 input weightlayerWeights: {3x3 cell} containing 2 layer weights functions: %功能adaptFcn: 'trains'initFcn: 'initlay'performFcn: 'mse'trainFcn: 'trainlm'parameters: %參數adaptParam: .passesinitParam: (none)performParam: (none)trainParam: .epochs, .goal, .max_fail, .mem_reduc, .min_grad, .mu, .mu_dec, .mu_inc, .mu_max, .show, .timeweight and bias values: %權重和偏置值IW: {3x1 cell} containing 1 input weight matrixLW: {3x3 cell} containing 2 layer weight matricesb: {3x1 cell} containing 3 bias vectorsother: %其他userdata: (user stuff)

總結

以上是生活随笔為你收集整理的基于MATLAB印刷体汉字识别解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。