- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
青岛科技大学
数字图像处理实验教程
信息学院 张淑军
版本:V3.1
2011年3月试行
2012-2014年修订
编写说明
本书是《数字图像处理》实验教程,配合理论授课内容,巩固所学知识,锻炼学生动手开发能力。
实验课需要学生预习,做好必要的准备,以保证实验效果。每次实验的内容和目标非常明确,实验过程中请同学们认真动手,举一反三,不依赖例程,能掌握编程思想。
为加强学生对于所掌握内容的理解,设计了实验回答问题,环环相扣,使学生在编程实践的同时巩固知识点,对所学知识融会贯通,为进入本次实验内容打下基础。
每次实验由例程和练习两部分组成,例程包含了本次实验的核心内容,要求学生统一掌握。练习部分考虑了学生编程水平的高低,分为:基础练习;扩展练习;高层进阶三个层次,以激励编程好的学生积极主动往更高层次努力,培养、选拔优秀学生;大多数的学生可以完成扩展练习。
每课内容最后罗列了所用到的基本Opencv函数,方便学生查找使用。未附说明的函数请学生自行查找OpenCV电子书,锻炼自己解决问题的能力。
每次实验完成之后,请学生按要求撰写实验报告,并在最后详细记录“实验收获与总结”,将实验中遇到的问题和解决过程作为经验教训记录下来,训练学生及时总结归纳和反思、记录的习惯。
目 录 3
实验1 图像文件读入和显示(验证性,第1章) 4
实验2 图像采集与显示(综合性,第2章) 12
实验3 图像坐标变换(综合性,第2章) 16
实验4 图像灰度变换(综合性,3.1节) 21
实验5 直方图均衡化(验证性,3.3节) 24
实验6 滤波器设计(综合性,3.4节) 30
实验7 颜色空间转换(综合性,第4章) 35
实验8 图像傅里叶变换(验证性,第5章) 41
拓展实验 基于MFC的图像处理程序设计(综合性) 47
参考文献 47
实验1 图像文件读入和显示(验证性,第1章)
实验目的
熟悉VC++6.0开发环境。
了解OpenCV开发库,学会在VC++6.0环境下安装和配置OpenCV。
掌握开源库的通用安装和配置方法。
通过运行一个简单的程序,初步了解OpenCV程序的特点。
实验内容
编写程序掌握OpenCV加载及显示图像的方法。
查看图像的属性(包括类型、大小、分辨率等),掌握图像的采样和量化、像素间的联系。
实验步骤(验证性实验)
检查所用的计算机系统是否已安装了VC++6.0(中英文版本均可)。
安装OpenCV 1.0并正确配置,配置文档见“9.OpenCV配置文档”。
创建OpenCV控制台项目。
方法1:新建文件
①在VC6.0下新建一个C++源文件:File-New-Files- C++ Source File,取名为hello.cpp,指定存储目录。
②在hello.cpp的编辑页面键入hello.cpp所给的代码,并保存。
③编译、连接,创建所需的工作区,在Debug目录下得到可执行文件hello.exe。
方法2:新建工程
①在VC6.0下创建一个空的控制台项目(Win32 Console Application),取名为hello,指定存储目录。
②给该项目添加(新建)一个C源代码文件(C++ Source File),取名为hello.cpp。键入所给的代码。
③编译、连接该程序,在Debug目录下得到可执行文件hello.exe。
在工程目录下放入图像文件lena.jpg,运行该项目,得到输出结果。
按照上述(1)-(3)步骤重新建立一个新的工程hello2.dsw,键入hello2.cpp的相关代码,编译、连接,调试参数,得到运行结果。
控制台程序有两种方法运行:
①以命令行方式运行:在cmd命令行窗口(开始-运行-打开,cmd-确定,进入命令行窗口)中找到hello.exe所在的文件夹,输入hello.exe lena.jpg(要求lena.jpg与编译连接好的hello.exe在同一个目录下),运行。
②指定输入参数:在项目配置页依次找Project-Settings-Debug-Program arguments,在其中直接输入程序要求的外部输入参数lena.jpg,运行该程序。(要求lena.jpg与工程文件在同一个目录下。)
为更好地理解控制台程序输入参数的问题,请将程序hello.cpp与程序hello2.cpp做仔细的对比,认真体会。
二者的区别在于,hello2.cpp中的main函数带有两个参数,argc和argv,如下面形式:
int main(int argc, char** argv) 或 int main(int argc, char* argv[])
这两个参数的作用是:argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如程序是hello
文档评论(0)