数字图像处理课程设计报告文档格式.docx

上传人:b****7 文档编号:22594145 上传时间:2023-02-04 格式:DOCX 页数:11 大小:287.39KB
下载 相关 举报
数字图像处理课程设计报告文档格式.docx_第1页
第1页 / 共11页
数字图像处理课程设计报告文档格式.docx_第2页
第2页 / 共11页
数字图像处理课程设计报告文档格式.docx_第3页
第3页 / 共11页
数字图像处理课程设计报告文档格式.docx_第4页
第4页 / 共11页
数字图像处理课程设计报告文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数字图像处理课程设计报告文档格式.docx

《数字图像处理课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

数字图像处理课程设计报告文档格式.docx

二、现实意义:

手写体数字的识别有着非常广泛的应用(如:

邮政编码、统计报表、财务报表、银行票据等等)。

三、涉及知识容:

1、边界查找

2、二值化

3、Simulink模型

四、实例分析及截图效果:

(1)代码显示:

1、程序中定义图像变量说明

(1)S--------------------------------------------------------------原图变量;

(2)img_crop----------------------------------------------------选择的图象;

(3)imgGray-----------------------------------------------------灰度图像变量

(4)BW-----------------------------------------------------------二值化图像;

(5)charvec-----------------------------------------------------5*7图像变量;

2、实现代码:

Index.m

functionvarargout=charGUI(varargin)

%Begininitializationcode-DONOTEDIT

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'

[]);

ifnargin&

&

ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

%Endinitializationcode-DONOTEDIT

%---ExecutesjustbeforecharGUIismadevisible.

functioncharGUI_OpeningFcn(hObject,eventdata,handles,varargin)

loaddata;

assignin('

base'

'

net'

net);

handles.output=hObject;

guidata(hObject,handles);

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=charGUI_OutputFcn(hObject,eventdata,handles)

varargout{1}=handles.output;

%---ExecutesonbuttonpressinpbLoad.

functionpbLoad_Callback(hObject,eventdata,handles)

[filename,pathname]=uigetfile({'

*.bmp'

;

'

*.jpg'

*.gif'

*.*'

},'

PickanImageFile'

);

S=imread([pathname,filename]);

axes(handles.axes1);

imshow(S);

handles.S=S;

%---ExecutesonbuttonpressinpbSelect.

functionpbSelect_Callback(hObject,eventdata,handles)

S=handles.S;

img_crop=imcrop(S);

axes(handles.axes2);

imshow(img_crop);

handles.img_crop=img_crop;

%---ExecutesonbuttonpressinpbPreprocess.

functionpbPreprocess_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;

%---ExecutesonbuttonpressinpbExtract.

functionpbExtract_Callback(hObject,eventdata,handles)

bw2=handles.bw2;

charvec=edu_imgresize(bw2);

axes(handles.axes5);

plotchar(charvec);

handles.charvec=charvec;

%---ExecutesonbuttonpressinpbRecognize.

functionpbRecognize_Callback(hObject,eventdata,handles)

charvec=handles.charvec;

selected_net=get(handles.editNN,'

string'

selected_net=evalin('

selected_net);

result=sim(selected_net,charvec);

[val,num]=max(result);

set(handles.editResult,'

mod(num,10));

%---ExecutesonbuttonpressinpbNN.

functionpbNN_Callback(hObject,eventdata,handles)

functioneditNN_Callback(hObject,eventdata,handles)

%---Executesduringobjectcreation,aftersettingallproperties.

functioneditNN_CreateFcn(hObject,eventdata,handles)

ifispc&

isequal(get(hObject,'

BackgroundColor'

),get(0,'

defaultUicontrolBackgroundColor'

))

set(hObject,'

white'

functioneditResult_Callback(hObject,eventdata,handles)

functioneditResult_CreateFcn(hObject,eventdata,handles)

edu_imgcrop.m

functionbw2=edu_imgcrop(bw)

%求图像的边界

[y2tempx2temp]=size(bw);

x1=1;

y1=1;

x2=x2temp;

y2=y2temp;

%寻找左侧空白空间

cntB=1;

while(sum(bw(:

cntB))==y2temp)

x1=x1+1;

tB=cntB+1;

%寻找右侧空白空间

while(sum(bw(cntB,:

))==x2temp)

y1=y1+1;

%寻找上边空白空间

cntB=x2temp;

x2=x2-1;

tB=cntB-1;

%寻找下边空白空间

cntB=y2temp;

y2=y2-1;

%将图像裁剪到边缘

bw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);

edu_imgresize.m

functionlett=edu_imgresize(bw2)

%此功能将采取裁剪的二进制图像,并将其改为5×

7

%单个向量中的特征表示。

bw_7050=imresize(bw2,[70,50]);

fort=1:

fort2=1:

5

Atemp=sum(bw_7050((cnt*10-9:

cnt*10),(cnt2*10-9:

cnt2*10)));

lett((cnt-1)*5+cnt2)=sum(Atemp);

end

lett=((100-lett)/100);

lett=lett'

3、运行效果截图:

第一步:

读取原图,并显示

第二步:

选择图像并显示

第三步:

预处理(二值化、查找边界、裁剪图片)

第四步:

特征提取

第五步:

显示数字(运行Simulink模型)

四、算法分析

(1)Simulink模型

sim函数用来运行Simulink模型。

需要注意的是,用户无法控制其仿真过程(例如暂停、继续),一旦运行就会直到达到结束条件为止——这一点和通过模型窗口界面运行仿真不同。

五、心得体会

通过这次的课程设计,我对Matlab有了一定的了解,刚开始做的时候有点不知所措,主要是因为平时不够努力,书上的知识了解得不够多,课下没有及时地复习。

这次作业我和组员商量后选择了手写体数字识别,做作业之前上网查了很多资料,通过网络了解了一些关于数字识别方面的知识,通过课本也了解了一些,经过不断地努力我和我的组员一起完成了这次作业。

虽然作业完成了,但也有一些缺陷,由于时间比较紧迫,所以希望以后有时间能自己再完善一下。

我相信只要能坚持到底就能成功。

六、程序资料清单和源代码

电子档打包发送到FTP。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1