




已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于人工神經(jīng)網(wǎng)絡(luò)的MATLAB手寫數(shù)字識(shí)別系統(tǒng)1、 函數(shù)MouseDraw實(shí)現(xiàn)手寫識(shí)別系統(tǒng)GUI界面的建立和鼠標(biāo)手寫的實(shí)現(xiàn)。(使用時(shí)保存為MouseDraw.m)function MouseDraw(action)% MouseDraw 本例展示如何以Handle Graphics來(lái)設(shè)定滑鼠事件% (MouseDraw Events)的反應(yīng)指令(Callbacks)% 本程序在鼠標(biāo)移動(dòng)非??鞎r(shí),不會(huì)造成畫“斷線”% global不能傳矩陣 global InitialX InitialY FigHandle hb2 hb3 hb4 count hb5 hb6 hb7count=E:im.jpg;imSize = 50; if nargin = 0, action = start; endswitch(action) %開啟圖形視窗 case start, FigHandle = figure(WindowButtonDownFcn,MouseDraw down,DeleteFcn,save bpnet);axis(1 imSize 1 imSize); % 設(shè)定圖軸范圍% set(gca,Position,.25 .20 .7 .7);axis off; grid off; box on; % 將圖軸加上圖框 title(手寫體輸入窗);try evalin(base,load bpnet)catch evalin(base,bpgdtrain);end% % fprintf(start); %設(shè)定滑鼠按鈕被按下時(shí)的反應(yīng)指令為MouseDraw down % set(gcf, WindowButtonDownFcn, MouseDraw down); hb1 = uicontrol(Parent, FigHandle, Units, Normalized, . Position, .3 .01 .13 .07, String, 保存, . Callback,exa=rgb2gray(frame2im(getframe(gca);,imwrite(exa,E:im.jpg);hb2=uicontrol(Parent,FigHandle,Style,popupmenu,Position,50 50 50 30,. String, 26,24, 22, 20, 18, 16,14,12,10);hb3=uicontrol(Parent, FigHandle,Style,text,.Position,10 90 90 30,String, CurrentX() ,CurrentY();hb4=uicontrol(Parent,FigHandle,Style,popupmenu,Position,50 20 50 30,. String,Red,Blue,Black,Yellow,Green); uicontrol(Parent,FigHandle,Position,270 6 70 30,String,訓(xùn)練,Callback,. exa=rgb2gray(frame2im(getframe(gca);,sample=reshape(recgnition(exa),25,1);,clc;,. t=inputdlg(數(shù)字類別,樣品訓(xùn)練);,t=str2num(t1,1)/10;,. bpnet.trainParam.lr=str2num(get(hb6,String);,bpnet.trainParam.goal=str2num(get(hb7,String);,. bpnet=train(bpnet,sample,t);,save bpnet); uicontrol(Parent,FigHandle,Position,360 6 70 30,String,識(shí)別,Callback,. exa=rgb2gray(frame2im(getframe(gca);,sample=reshape(recgnition(exa),25,1);,. record=round(sim(bpnet,sample)*10);,clc;,set(hb5,String,num2str(record),fontSize,48);); uicontrol(Parent,FigHandle,Style,text,Position,10 60 30 20,String,字號(hào));uicontrol(Parent,FigHandle,Style,text,Position,10 30 30 20,String,顏色);hb5=uicontrol(Parent,FigHandle,Style,text,Position,10 150 90 90);uicontrol(Parent,FigHandle,Style,text,Position,5 260 50 20,String,學(xué)習(xí)速率);hb6=uicontrol(Parent,FigHandle,Style,Edit,Position,60 260 30 20,String,0.01); uicontrol(Parent,FigHandle,Style,text,Position,5 290 50 20,String,訓(xùn)練精度);hb7=uicontrol(Parent,FigHandle,Style,Edit,Position,60 290 30 20,String,0.005); uicontrol(Parent,FigHandle,Style,pushbutton,Position,450 6 70 30,String,清除,Callback,cla); %將函數(shù)變量導(dǎo)入到工作空間;assignin(base,hb5,hb5);assignin(base,hb6,hb6);assignin(base,hb7,hb7);% dlmwrite(IXT.txt, -10, delimiter, t, precision, 6); dlmwrite(IYT.txt, -10, delimiter, t, precision, 6); %滑鼠按鈕被按下時(shí)的反應(yīng)指令 case down, if strcmp(get(FigHandle, SelectionType), normal) %如果是左鍵 set(FigHandle,pointer,hand); CurPiont = get(gca, CurrentPoint); InitialX = CurPiont(1,1); InitialY = CurPiont(1,2); dlmwrite(IXT.txt, InitialX, -append, delimiter, t, precision, 6); dlmwrite(IYT.txt, InitialY, -append, delimiter, t, precision, 6); % 列印MouseDraw down!訊息% % fprintf(MouseDraw down!n); % 設(shè)定滑鼠移動(dòng)時(shí)的反應(yīng)指令為MouseDraw move set(gcf, WindowButtonMotionFcn, MouseDraw move); set(gcf, WindowButtonUpFcn, MouseDraw up); elseif strcmp(get(FigHandle, SelectionType), alt) % 如果是右鍵 set(FigHandle, Pointer, arrow); set( FigHandle, WindowButtonMotionFcn, ) set(FigHandle, WindowButtonUpFcn, ) fprintf(MouseDraw right button down!n); ImageX = importdata(IXT.txt); ImageY = importdata(IYT.txt); InputImage = ones(imSize); roundX = round(ImageX); roundY = round(ImageY); for k = 1:size(ImageX,1) if 0roundX(k) & roundX(k)imSize & 0roundY(k) & roundY(k) InitialX step_x = x_gap; else step_x = -x_gap; end if Y InitialY step_y = y_gap; else step_y = -y_gap; end % 定義x,y的變化范圍和步長(zhǎng) if abs(X-InitialX) 0.01 % 線平行于y軸,即斜率不存在時(shí) iy = InitialY:step_y:Y; ix = X.*ones(1,size(iy,2); else ix = InitialX:step_x:X ; % 定義x的變化范圍和步長(zhǎng) % 當(dāng)斜率存在,即k = (Y-InitialY)/(X-InitialX) = 0 iy = (Y-InitialY)/(X-InitialX).*(ix-InitialX)+InitialY; end ImageX = ix, X; ImageY = cat(2, iy, Y); popup_index1=26-(get(hb2,Value)-1)*2; popup_index2=get(hb4,Value); switch(popup_index2) case 1 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Red); case 2 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Blue); case 3 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Black); case 4 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Yellow); case 5 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Green); end dlmwrite(IXT.txt, ImageX, -append, delimiter, t, precision, 6); dlmwrite(IYT.txt, ImageY, -append, delimiter, t, precision, 6); InitialX = X; %記住當(dāng)前點(diǎn)坐標(biāo) InitialY = Y; %記住當(dāng)前點(diǎn)坐標(biāo) % 列印MouseDraw is moving!及滑鼠現(xiàn)在位置 % fprintf(MouseDraw is moving! Current location = (%g, %g)n, . % CurPiont(1,1), CurPiont(1,2); % % fprintf(MouseDraw move!n); % 設(shè)定滑鼠按鈕被釋放時(shí)的反應(yīng)指令為MouseDraw up set(gcf, WindowButtonUpFcn, MouseDraw up); %滑鼠按鈕被釋放時(shí)的反應(yīng)指令 case up, % 清除滑鼠移動(dòng)時(shí)的反應(yīng)指令 set(gcf, WindowButtonMotionFcn, ); % 清除滑鼠按鈕被釋放時(shí)的反應(yīng)指令 set(gcf, WindowButtonUpFcn, ); % 列印MouseDraw up! % % fprintf(MouseDraw up!n); end end2、 實(shí)現(xiàn)手寫數(shù)字圖像特征的提?。海ù鏋閞ecgnition.m)function sample=recgnition(exa)i,j=find(exa=204);imin=min(i);imax=max(i);jmin=min(j);jmax=max(j);a=exa(imin:imax,jmin:jmax);M=imax-imin+1;N=jmax-jmin+1;for m=1:5 for n=1:5 exa_cm,n=a(1+(m-1)*M/5:m*M/5,1+(n-1)*N/5:n*N/5); sample(1,(m-1)*5+n)=size(find(exa_cm,n=204),1)/(M*N/25); %subplot(5,5,(m-1)*5+n),subimage(exa_cm,n); endend 3、 建立bp神經(jīng)網(wǎng)絡(luò)。(可修改所建立bp神經(jīng)網(wǎng)絡(luò)參數(shù),也可建立其他類型神經(jīng)網(wǎng)絡(luò))。x=ones(25,2);x(:,1)=0;bpnet=newff(x,50,1,logsig,logsig,traingd);bpnet.trainParam.show=5;%顯示訓(xùn)練迭代過(guò)程(每隔5次訓(xùn)練,顯示一次訓(xùn)練進(jìn)程)bpnet.trainParam.lr=0.01;%學(xué)習(xí)速率bpnet.trainParam.epochs=2000;%最大訓(xùn)練次數(shù)bp
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理學(xué)中的代表性人物考查試題及答案
- 了解專家建議2025年建筑試題及答案
- 2025農(nóng)產(chǎn)品供貨合同農(nóng)產(chǎn)品供貨合同協(xié)議
- 2025贈(zèng)與車輛買賣合同模板
- 重要概念市政學(xué)試題及答案
- 2025超市貨架租賃合同
- 公文寫作的實(shí)際應(yīng)用場(chǎng)景分析試題及答案
- 管理心理學(xué)與創(chuàng)造性思維發(fā)展的考察試題及答案
- 現(xiàn)代管理思維培養(yǎng)試題及答案
- 行政管理學(xué)核心理念試題及答案
- 大型心血管造影系統(tǒng)及其DSA質(zhì)量控制
- (高清版)DB33∕T 386-2013 內(nèi)河航道工程質(zhì)量檢驗(yàn)規(guī)范
- 鋁加工深井鑄造培訓(xùn)
- 國(guó)家中小學(xué)智慧教育平臺(tái)應(yīng)用指南
- 2024-2025學(xué)年人教版七年級(jí)(下)期中數(shù)學(xué)試卷(考試范圍:第7~9章) (含解析)
- 無(wú)人機(jī)噴灑系統(tǒng)設(shè)計(jì)-全面剖析
- 人工智能安全監(jiān)控系統(tǒng)開發(fā)協(xié)議
- 油田夏季十防培訓(xùn)課件
- 非遺檔案資源管理系統(tǒng)建設(shè)與實(shí)施研究
- 工傷賠償私了協(xié)議書范本
- 急性心梗診療(2025 )
評(píng)論
0/150
提交評(píng)論