数字图像处理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-
数字图像处理实验报告
一、实验名称
图像读取和图像直方图统计
二、实验目的
1.强化巩固《数字图像处理》课程中学习的知识,将理论用于实
践。
2.学会利用C++程序语言实现数字图像处理中的“图像读取”和
“图像直方图统计”功能,加深对这门课程的理解。
3.为以后更进一步学习数字图像处理的知识打下基础。
三、实验工具
安装有VC 软件的电脑一台
四、实验步骤(分实验一和实验二)
(一)实验一:图像的读取
1.按照实验指导书中的构建DIB函数库的方法,将此函数库的代码
写进文本文档中,并另存为相应的“.cpp”文件和“.h”文件。
2.新建以“Miaoqi”为名字的工程,设置好相应选项。
3.接下来,在该工程中各个文件中添加相应代码。
点击
“FileView”即可打开查看。
1)在“”中添加
2)点击“查看”—“建立类向导”,添加
“ON_WM_ERASEBKGND()”,“ON_COMMAND(ID_EDIT_COPY,OnEditCopy)”,
“ON_COMMAND(ID_EDIT_PASTE,OnEditPaste)”,“ON_UPDATE_COMMAND_UI(ID_EDIT_COPY,OnUpdateEditCopy”, “ON_UPDATE_COMMAND_UI(ID_EDIT_ PASTE,OnUpdateEditPaste”。
并在中设置页数为1。
3)阅读实验指导书50页到页的内容,打开,完成以下函数相应代
码的添加,以实现相应函数功能。
“void MiaoqiView::OnDraw(CDC*pDC)”,“BOOL MiaoqiView::OnEraseBkgnd(CDC*pDC) ”,“LRESULT MiaoqiView::OnDoRealize(WPARAM wParam, LPARAM)”,“void MiaoqiView::OnEditCopy()”,“void MiaoqiView::OnInitialUpdate() ”,“void MiaoqiView::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)”,“void MiaoqiView::OnEditPaste() ”,“void CMiaoqiView::OnUpdateEditCopy(CCmdUI* pCmdUI) ”,“
void CMiaoqiView::OnUpdateEditPaste(CCmdUI* pCmdUI)”,“void CChildFrame::ActivateFrame(int nCmdShow)”等。
4)按照实验指导书,补全、等文件中一些细节代码。
5)点击“工程”—“添加到工程”—“文件”,选择和,添加进该
工程。
6)编译,修改部分语法错误,成功后,即可打开所实现的对话框。
(见附图)
(二)图像直方图统计(基于实验一:图像的读取)
1)设置制作打开图像灰度直方图统计图的对话框
a)点击“ResourceView”—“Miaoqi resources”—“Dialog”,右
键单击—“插入Dialog”。
b)打开对话框的属性,按照实验指导书设置成规定格式。
c)在打开的对话框中添加三个静态文本框,两个编辑框控件,保留
确认键和取消键,进行拖拉,设置好各键布局,然后将各键的属性设置成规定格式。
d)右击对话框,点击“建立类向导”,按照实验指导书设置好类名
和function等。
e)依旧在“建立类向导”中,完成映射类CDlgIntensiy的消息和添
加类CDlgIntensiy的成员变量的添加。
包括(OnInitDialog;
OnKillfocusEDITLowGray;OnKillfocusEDITUpGray;
OnLButtonDown;OnLButtonUp;OnMouseMove;OnOK;OnPaint)和(m_iLowGray)和(m_iUpGray)等等。
2)点击“ResourceView”—“Menu”—“IDR_MIAOQI_TYPE”,添加
“直方图”菜单项。
按照实验指导书设置好属性,并在类“MiaoqiView”中添加该菜单时间的程序代码。
3)自习阅读实验指导书,完成其他文件中的代码添加。
4)编译,修改出现的错误,成功后即可打开一幅图像,进行直方图
统计图的读取。
(见附图)
五、实验结果(附图)
1.实验一成功实现
2.成功打开一幅图像
3.成功统计出该实例图像的直方图分布情况。
六、实验中遇到的问题及解决办法
实验中出现的错误主要在程序代码完成后的语法修改上,我遇到的问题大致有如下几种:
1.用到的函数等未明确定义(undeclared indentification),因为自
己C++基础比较差,修改起来较困难,后来在老师的指导下,在每个错误文件对应的”.h”文件中,找到该函数,看是否有明确定义。
若查找不到,就添加上去。
2.因为大小写字母未明确区分而造成的定义不明确。
按照1中方法
查找到错误地方,统一大小写。
3.因为之前没有注意到添加直方图按钮后要添加对应的程序代码,
导致程序可以运行,但是该按钮是灰色,无法打开,后来再仔细翻看实验指导书,才知道忘了添加代码,添加后即可点击查看直
方图了。
4.开始通过复制粘贴将“”和“”插入到文件中,导致无法识别,
无法运行,后来通过点击“工程”—“添加到工程”—“文件”,选择和,添加进该工程,才得以成功运行。
七、实验感想
通过这几次数字图像处理处理的实验,主要是加深了在课堂上对该课程的学习的印象,巩固了相关知识,更是通过更直观的方式,让我们了解到了数字图像处理通过程序实现的神奇之处。
数字图像处理是一个十分有用的工具,可以通过它来实现对一副图像的分析和处理,来达到满足人的视觉需求和其他目的,将抽象的东西具体化,实用化。
虽然很多同学甚至学长学姐都觉得这门课程比较难学,但是我觉得我对它很感兴趣,这样就算难,我也可以努力学好。
这门课程涉及到了很多数学知识,例如傅里叶变换等,确实难度较大。
而且对于编程基础较薄弱的我,也是一个很大的挑战,但是在向老师和同学的学习中,我还是踏实完成了老师布置的实验任务,成功地完成了图像的读取实验和图像直方图统计实验,十分有成就感。
通过和老师的学习,我明白这门课程重在思想,要学会老师的思想,总结出,创新出自己的思想和想法。
不管学习什么,都要有这样的态度和方法,才能学好。
我相信,通过这门课程的学习,对以后摄影测量和遥感及其他知识的学习会很大帮助,相信自己可以做得更好。