设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于BP网络的英文字母识别系统毕业设计
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  
基于BP网络的英文字母识别系统
姓名: 
学号: 
班级:(控制科学与技术专业)
一、实现功能:利用BP神经网络,对大写字母进行识别。
 
二、使用说明:利用Matlab打开Example1.m文件运行。
              1)“网络训练”对样本进行训练。
              2)利用“选择图片”来选择要识别的字母图像,同时图像显示于左边。
              3)“二值化”实现对图像的预处理和处理结果的显示。
              4)“字母识别”实现对图像的识别,识别的结果将显示在编辑框中。

三、核心代码:
 
1  %Example1 英文字母识别
clear all;
%添加图形窗口
H=figure('Color',[0 0.7 0.6],...
    'position',[400 300 500 400],...
    'Name','基于BP神经网络的英文字母识别',...
    'NumberTitle','off',...
    'MenuBar','none');
%画坐标轴对象,显示原始图像
h0=axes('position',[0.1 0.6 0.3 0.3]);
%添加图像打开按钮
h1=uicontrol(H,'Style','push',...
    'Position',[350 300 90 50],...
    'String','选择图片',...
    'FontSize',12,...
    'Call','op');
%画坐标轴对象,显示经过预处理之后的图像
h2=axes('position',[0.1 0.2 0.3 0.3]);
%添加预处理按钮
h3=uicontrol(H,'Style','push',...
    'Position',[240 240 90 50],...
    'String','二值化',...
    'FontSize',12,...
    'Call','preprocess');
%添加识别按钮
h4=uicontrol(H,'Style','push',...
    'Position',[350 240 90 50],...
    'String','字母识别',...
    'FontSize',12,...
    'Call','recognize');
%添加显示识别结果的文本框
h5=uicontrol(H,'Style','edit',...
    'Position',[250 80 180 120],...
    'String','显示识别结果',...
    'FontSize',14,...
    'Back',[1 1 1],...
    'Fore',[1 0 0]);
%添加训练神经网络按钮
h6=uicontrol(H,'Style','push',...
    'Position',[240 300 90 50],...
    'String',' 网络训练',...
    'FontSize',12,...
'Call','Example1Tr');
 
2   %Example1Tr
M=1;
N=26*M;%样本数
%获取26个大写字母图像的数据
for kk=0:N-1
    p1=ones(16,16);%初始化16*16的二值图像(全白)
    m=strcat(int2str(kk),'.bmp');%形成文件名
    x=imread(m,'bmp');%读取图像
    bw=im2bw(x,0.5);%转换成二值图像数据
    %用矩形框截取
    [i,j]=find(bw==0);%查找像素为黑的坐标
    %取边界坐标
    imin=min(i);
    imax=max(i);
    jmin=min(j);
    jmax=max(j);
    bw1=bw(imin:imax,jmin:jmax);%截取
    %调整比例,缩放成16*16的图像
    rate=16/max(size(bw1));
    bw1=imresize(bw1,rate);%会存在转换误差
    %bw1转换成标准的16*16图像p1
    [i,j]=size(bw1);
    i1=round((16-i)/2);
    j1=round((16-j)/2);
    p1(i1+1:i1+i,j1+1:j1+j)=bw1;
    p1=-1.*p1+ones(16,16);
    %p1转换成输入向量
    for m=0:15
        p(m*16+1:(m+1)*16,kk+1)=p1(1:16,m+1);
    end
end
%形成目标向量
for kk=0:M-1
    for ii=0:25
       t(kk+ii+1)=ii;
    end
end
%设置输入向量范围
pr(1:256,1)=0;
pr(1:256,2)=1;
%创建两层BP神经网络,隐层有25个节点
net=newff(pr,[25 1],{'logsig' 'purelin'},'traingdx','learngdm');
net.trainParam.epochs=2500;
net.trainParam.goal=0.001;
net.trainParam.show=10;
%训练神经网络
net=train(net,p,t);
%存储训练好的神经网络
 
3  %op
%读取图像文件
[filename,pathname]=uigetfile({'*.bmp';'*.jpg';...
    '*.gif';'*.*'},...
    'Pick an Image File');
X=imread([pathname,filename]);
%显示图像
axes(h0);%h0设置为当前坐标轴句柄
imshow(X);%h0上显示原始图像
 
%preprocess
p1=ones(16,16);
bw=im2bw(X,0.5);%转换成二值图像
%用矩形框截取图像
[i,j]=find(bw==0);
imin=min(i);
imax=max(i);
jmin=min(j);
jmax=max(j);
bw1=bw(imin:imax,jmin:jmax);
%调整比例,变换成16*16图像
rate=16/max(size(bw1));
bw1=imresize(bw1,rate);
[i,j]=size(bw1);
i1=round((16-i)/2);
j1=round((16-j)/2);
p1(i1+1:i1+i,j1+1:j1+j)=bw1;
p1=-1.*p1+ones(16,16);
%显示预处理的结果
axes(h2);
imshow(p1);
 
4  %recognize
%生成向量形式
for m=0:15
    q(m*16+1:(m+1)*16,1)=p1(1:16,m+1);
end
%识别
[a,Pf,Af]=sim(net,q);
a=round(a);
switch a
    case 0,ch='A';
    case 1,ch='B';
    case 2,ch='C';
    case 3,ch='D';
    case 4,ch='E';
    case 5,ch='F';
    case 6,ch='G';
    case 7,ch='H';
    case 8,ch='I';
    case 9,ch='J';
    case 10,ch='K';
    case 11,ch='L';
    case 12,ch='M';
    case 13,ch='N';
    case 14,ch='O';
    case 15,ch='P';
    case 16,ch='Q';
    case 17,ch='R';
    case 18,ch='S';
    case 19,ch='T';
    case 20,ch='U';
    case 21,ch='V';
    case 22,ch='W';
    case 23,ch='X';
    case 24,ch='Y';
    case 25,ch='Z';
end
%显示识别结果
set(h5,'String',ch,...
    'FontSize',30);
  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于Python的在线自主考试系 基于腾讯云的个人知识库管理系统 基于Android的酒店预定系统
基于matlab变频器控制交流电 基于微信小程序的家校联动平台管理 基于时频分析与自适应滤波技术的多
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!