五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【驗證碼識別】基于遺傳算法優(yōu)化OUST結(jié)合BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)數(shù)字驗證碼識別含Matlab源碼

2022-04-04 15:24 作者:Matlab工程師  | 我要投稿

1 簡介

本項目基于MATLAB完成數(shù)字驗證碼識別的GUI設(shè)計,圖像處理,驗證碼生成、識別等功能。采用BP神經(jīng)網(wǎng)絡(luò)來實現(xiàn)對驗證碼圖像的識別。驗證碼的識別,大概分為圖片預(yù)處理、分割字符、識別字符三個過程,其中分割字符最為困難。本文采用基于遺傳算法和最大熵優(yōu)化的圖像分割技術(shù)、大津法(OTSU)、自定義閾值三種技術(shù)進行字符分割,并作進一步分析。利用英國薩里大學(xué)提供的印刷體數(shù)字數(shù)據(jù)集,共10160張圖片,90%的數(shù)據(jù)用于訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),剩余10%的數(shù)據(jù)用于測試,最終識別準(zhǔn)確率達到93.47%,利用訓(xùn)練所得BP模型完成識別字符,最終驗證碼圖像識別效果較佳。

2 部分代碼

% 創(chuàng)建數(shù)據(jù)集% buildataset: 用來創(chuàng)建神經(jīng)網(wǎng)絡(luò)適合的訓(xùn)練集function [inputs outputs] = builddataset(pathname,handles) ? ?% 創(chuàng)建數(shù)據(jù)集 ? ?% pathname='D:\課程\計算智能\BP數(shù)字驗證碼\img\'; ? ?file = dir(pathname); %除去“.”“..”兩個文件夾 ? ?file_num = size(file,1)-2; ? ?temp = cat(1,strvcat(file(10).name,file.name)); ? ?class = temp(4:13,:); ? ?inputs = []; ? ?outputs = []; ? ?for i = 1:file_num ? ? ? ?pathName = [pathname,class(i,:),'\']; ? ? ? ?temp_png = dir([pathName,'\*.png']); ? ? ? ?temp_imgName = cat(1,strvcat(temp_png(10).name,temp_png.name)); ? ? ? ?pic_num = size(temp_png,1); ? ? ? ?imgName = temp_imgName(2:pic_num+1,:); ?%得到文件夾內(nèi)pic_num張圖片的名稱 ? ? ? ?for j = 1:pic_num ? ? ? ? ? ?I2 = 1 - im2bw(imread([pathName,imgName(j,:)]),0.9); % 轉(zhuǎn)換為二值圖像并反轉(zhuǎn) ? ? ? ? ? ?L= bwlabel(I2,8); %找到圖中的連通域,num為連通域數(shù)量 ? ? ? ? ? ?imgsize = size(L); ? ? ? ? ? ?Idx = zeros(1,4); ? ? ? ? ? ?flag = 0; ? ? ? ? ? ?for k = 1 : imgsize(1, 1) ? ? ? ? ? ? ? ?if size(find(L(k,:) == 1))==[1 0] ? ? ? ? ? ? ? ? ? ?flag_temp = false; ? ? ? ? ? ? ? ?else ? ? ? ? ? ? ? ? ? ?flag_temp = true; ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?if flag == 0 && flag_temp ? ? ? ? ? ? ? ? ? ?Idx(1,1) = k-1; ? ? ? ? ? ? ? ? ? ?flag = 1; ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?if flag == 1 && ~flag_temp ? ? ? ? ? ? ? ? ? ?Idx(1,2) = k; ? ? ? ? ? ? ? ? ? ?flag = 2; ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?if k == imgsize(1, 1) && flag == 1 ? ? ? ? ? ? ? ? ? ?Idx(1,2) = k; ? ? ? ? ? ? ? ? ? ?flag = 2; ? ? ? ? ? ? ? ?end ? ? ? ? ? ?end ? ? ? ? ? ?flag = 0; ? ? ? ? ? ?for k = 1 : imgsize(1, 2) ? ? ? ? ? ? ? ?if size(find(L(:,k) == 1))==[0 1] ? ? ? ? ? ? ? ? ? ?flag_temp = false; ? ? ? ? ? ? ? ?else ? ? ? ? ? ? ? ? ? ?flag_temp = true; ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?if flag == 0 && flag_temp ? ? ? ? ? ? ? ? ? ?Idx(1,3) = k-1; ? ? ? ? ? ? ? ? ? ?flag = 1; ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?if flag == 1 && ~flag_temp ? ? ? ? ? ? ? ? ? ?Idx(1,4) = k; ? ? ? ? ? ? ? ? ? ?flag = 2; ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?if k == imgsize(1, 2) && flag == 1 ? ? ? ? ? ? ? ? ? ?Idx(1,4) = k; ? ? ? ? ? ? ? ? ? ?flag = 2; ? ? ? ? ? ? ? ?end ? ? ? ? ? ?end ? ? ? ? ? ?for k=1:4 ? ? ? ? ? ? ? ?if Idx(1,k) == 0 ? ? ? ? ? ? ? ? ? ?Idx(1,k) = 1; ? ? ? ? ? ? ? ?end ? ? ? ? ? ?end ? ? ? ? ? ?t = I2(Idx(1,1):Idx(1,2), Idx(1,3):Idx(1,4)); ? ? ? ? ? ?I2 = imresize(t,[32,32]); %縮放至32*32 ? ? ? ? ? ?I2 = im2bw(I2,0.5); ? ? ? ? ? ?axes(handles.axes1); ? ? ? ? ? ?if j == 200 ? ? ? ? ? ? ? ?j; ? ? ? ? ? ?end ? ? ? ? ? ?imshow(I2); ? ? ? ? ? ?[m n]=size(I2); ? ? ? ? ? ? ? ? ? ? ? ?A=reshape(I2',[1 m*n]); ? %將I2矩陣變?yōu)?行m*n列的矩陣i ? ? ? ? ? ?inputs=[inputs;A]; ? ? ? ? ? ?B=zeros(1,file_num); ? ? ? ? ? ?B(1,i) = 1; ? ? ? ? ? ?outputs = [outputs;B]; ? ? ? ?end ? ?end ? ?save inputs.mat inputs; ? ?save outputs.mat outputs; ? ?msgbox('數(shù)據(jù)集創(chuàng)建成功!', '提示');end

3 仿真結(jié)果

4 參考文獻

[1]王盟. 基于遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的手寫體字母識別[D]. 河北科技大學(xué), 2016.

博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。

部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除。




【驗證碼識別】基于遺傳算法優(yōu)化OUST結(jié)合BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)數(shù)字驗證碼識別含Matlab源碼的評論 (共 條)

分享到微博請遵守國家法律
南安市| 黄平县| 龙泉市| 长子县| 沅江市| 缙云县| 天峻县| 日喀则市| 瑞金市| 灵山县| 禹州市| 金华市| 绥芬河市| 永春县| 华蓥市| 镇平县| 七台河市| 柳州市| 宝应县| 兴城市| 麦盖提县| 宁明县| 孙吴县| 朝阳市| 雷波县| 怀远县| 喜德县| 奉贤区| 抚松县| 简阳市| 大连市| 防城港市| 忻州市| 宜城市| 察哈| 鄄城县| 曲靖市| 承德市| 安徽省| 南皮县| 当涂县|