数字图像处理课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理课程设计报告
姓名:宋东洋、祁飞、冯登科
学号:20137750342、20137750336、20137750309
班级:软件开发.NET 3班
设计题目:手写体数字识别
教师:庞海波老师
提交日期:2015年12月25日
一、设计内容:
主题:《手写体数字识别》
详细说明:读入手写体数字图片,选择要识别的数字然后通过寻找数字边界将图像裁剪的边缘,然后生成裁剪后图像的二进制图像,并将其转换成5﹡7的图像,然后进行特征提取,运行Simulink模型识别数字。
二、现实意义:
手写体数字的识别有着非常广泛的应用(如:邮政编码、统计报表、财务报表、银行票据等等)。
三、涉及知识内容:
1、边界查找
2、二值化
3、Simulink模型
四、实例分析及截图效果:
(1)代码显示:
1、程序中定义图像变量说明
(1)S--------------------------------------------------------------原图变量; (2)img_crop----------------------------------------------------选择的图象; (3)imgGray-----------------------------------------------------灰度图像变量(4)BW-----------------------------------------------------------二值化图像;(5)charvec-----------------------------------------------------5*7图像变量;
2、实现代码:
Index.m
function varargout = charGUI(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @charGUI_OpeningFcn, ...
'gui_OutputFcn', @charGUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before charGUI is made visible.
function charGUI_OpeningFcn(hObject, eventdata, handles, varargin) load data;
assignin('base','net',net);
handles.output = hObject;
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = charGUI_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
% --- Executes on button press in pbLoad.
function pbLoad_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile({'*.bmp';'*.jpg';'*.gif';'*.*'}, 'Pick an Image File');
S = imread([pathname,filename]);
axes(handles.axes1);
imshow(S);
handles.S = S;
guidata(hObject, handles);
% --- Executes on button press in pbSelect.
function pbSelect_Callback(hObject, eventdata, handles)
S = handles.S;
axes(handles.axes1);
img_crop = imcrop(S);
axes(handles.axes2);
imshow(img_crop);
handles.img_crop = img_crop;
guidata(hObject, handles);
% --- Executes on button press in pbPreprocess.
function pbPreprocess_Callback(hObject, eventdata, handles) img_crop = handles.img_crop;
imgGray = rgb2gray(img_crop);
bw = im2bw(img_crop,graythresh(imgGray));
axes(handles.axes3);
imshow(bw);
bw2 = edu_imgcrop(bw);
axes(handles.axes4);
imshow(bw2);
handles.bw2 = bw2;