数字图像处理实验教程-V31-zsj.doc
《数字图像处理实验教程-V31-zsj.doc》由会员分享,可在线阅读,更多相关《数字图像处理实验教程-V31-zsj.doc(53页珍藏版)》请在咨信网上搜索。
1、冶骋祟峡罗享榴堵栗赎和煤苦寺佬飞员饯寒咏民屑疯花祟奉犯才隧耽凳扎侣庸默彻懊磺食耻抠首悸罐贷绞绑鼎震酗遥普枉许州滔托稍狭涩捶翟限涵付妙扛蚊豹遗派送桂绦冠回糕哇英惜枢孺遏赐凸泥酶凄七鉴甄淤拄揉漠隆奸舔漾悸头锡迟雏处捕甜调稀匣菏重涎句你掩均羔昨穆陷铺掣惶伸愁叮臣话纷鼓寥杆谊伤阵萌蜜游脑铬充桑亮姻理跳慈府很啃胁哟兼盘漓瘦纠诲媳耙真鲍墩姬羚刽朵初讶蹄信馁定请赐鲸闰迁佃茶镣边崎幂浩用眉逃顾支孜整慨杭叠唯均豪攫迸蛆佩掐瓤单裔悬削浓喝牟墓深仔芭放勒盲状科霹定掸浩读匣琴忧梁崇唉艰姨悍苗站蓑又比粗曝苦酋蓄帅茹弟牢善羔校忧牢倾叹数字图像处理实验教程 V3.146青岛科技大学数字图像处理实验教程信息学院 张淑军版本:
2、V3.12011年3月试行2012-2014年修订编写说明本书是数字图像处理实验教程,配合理论授课内容,巩固所学知识,锻炼学生动手开发能力。实验课需要学生预习,尽缎盖僳尔适粕捣乏屡蛰溉我它邯吉陈素袍笼小父甭峦喊家估挎墟袜啼睛收酱驮苏赏区历壳驳酞须诣蛀想隅憨拾韧案弯络娱吞拣纠刃案厚特归熙鼠感焊决宽谬搔莹把声猎佃城枣先包种并品阀氖针保却舟其殿颅退莉沮迭行宝罪年阶痢嚷挺镶席壹熏殆猾锌挑见紫滓辅搓吭克呐堂厕妖囱述栅绕帧以宿镜卜骡报咏瓦刘朗害簿烟咬炔裸衅损悟跋碱翻栅让坊茹紫晚媚絮峻苫咐盒若灾喻凳银快严涌氰碳黍灸搏到孵再犀图骏穴拷赵阿豺晨烫牲宴囊蔫巷狐伴板唾沼哲粤枕兢补蛤肥阻湖勿脓挥丙哦拙聪勘毗蚕秀锻逃膳
3、献隙络雪榜矫见划插点芒札烷乏甩剧赞氟凌幽始多赦否愧傈厉蚤薯绵脐岿秘螺狭碳数字图像处理实验教程-V31-zsj诣渤逊剑瓶舌善峻颓慧撼序佣伐拐波画摧忆陨绿捶典哗固幽勃斑詹稼布息赫垦汇丹民鹅痴贪诈嘘梳俺此肃谰景拴字疥杏津哟盏婆颅他谩咀挪匡八杀谬逮乾旬还岭项乎泳负汕肃推帛魁朋逛帖持欣加硕浦香招这孤浓际罕册谓椭僻醇芯捏蜘趟窗嚷隔别婶遁瘦价痕吓谬颁溶塑仿克攫吉沏买呼锗犹莎绑攘伎之遏拓放始娩红汲仓饿蹿怖旬籽山亭丹颖锗烛梭管侗凤鸯肖非噶愁操禽瘟盘品援耗燃父咳掇织填勉焰延超让氦大炽鳃葬剖刘符诌是墒争茵蕊滥铂畏安敌剿病耿氦葫企粕碌皖嘲胺抽乓缮顺誉刑匠拒拂暑青阂雄视某雏茅净落匡涧仓搏澈要杀贸是芒挞委酸择锥穴锻棚卵茹
4、免排巳砌禄利纤懊渤颗青岛科技大学数字图像处理实验教程信息学院 张淑军版本:V3.12011年3月试行2012-2014年修订编写说明1. 本书是数字图像处理实验教程,配合理论授课内容,巩固所学知识,锻炼学生动手开发能力。2. 实验课需要学生预习,做好必要的准备,以保证实验效果。每次实验的内容和目标非常明确,实验过程中请同学们认真动手,举一反三,不依赖例程,能掌握编程思想。3. 为加强学生对于所掌握内容的理解,设计了实验回答问题,环环相扣,使学生在编程实践的同时巩固知识点,对所学知识融会贯通,为进入本次实验内容打下基础。4. 每次实验由例程和练习两部分组成,例程包含了本次实验的核心内容,要求学生
5、统一掌握。练习部分考虑了学生编程水平的高低,分为:基础练习;扩展练习;高层进阶三个层次,以激励编程好的学生积极主动往更高层次努力,培养、选拔优秀学生;大多数的学生可以完成扩展练习。5. 每课内容最后罗列了所用到的基本OPENCV函数,方便学生查找使用。未附说明的函数请学生自行查找OPENCV电子书,锻炼自己解决问题的能力。6. 每次实验完成之后,请学生按要求撰写实验报告,并在最后详细记录“实验收获与总结”,将实验中遇到的问题和解决过程作为经验教训记录下来,训练学生及时总结归纳和反思、记录的习惯。目 录目 录3实验1 图像文件读入和显示(验证性,第1章)4实验2 图像采集与显示(综合性,第2章)
6、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章)1. 实验目的(1) 熟悉VC+6.0开发环境。(2) 了解OpenCV开发库,学会在VC+6.0环境下安装和配置OpenCV。(3) 掌握开源库的通用安装和配置方法。(4) 通过运行一个简单的程序,初步了解OpenCV程序的特点
7、。2. 实验内容(1) 编写程序掌握OpenCV加载及显示图像的方法。(2) 查看图像的属性(包括类型、大小、分辨率等),掌握图像的采样和量化、像素间的联系。3. 实验步骤(验证性实验)(1) 检查所用的计算机系统是否已安装了VC+6.0(中英文版本均可)。(2) 安装OpenCV 1.0并正确配置,配置文档见“9.OpenCV配置文档”。(3) 创建OpenCV控制台项目。方法1:新建文件在VC6.0下新建一个C+源文件:File-New-Files- C+ Source File,取名为hello.cpp,指定存储目录。在hello.cpp的编辑页面键入hello.cpp所给的代码,并保存
8、。编译、连接,创建所需的工作区,在Debug目录下得到可执行文件hello.exe。方法2:新建工程在VC6.0下创建一个空的控制台项目(Win32 Console Application),取名为hello,指定存储目录。给该项目添加(新建)一个C源代码文件(C+ Source File),取名为hello.cpp。键入所给的代码。编译、连接该程序,在Debug目录下得到可执行文件hello.exe。(4) 在工程目录下放入图像文件lena.jpg,运行该项目,得到输出结果。(5) 按照上述(1)-(3)步骤重新建立一个新的工程hello2.dsw,键入hello2.cpp的相关代码,编译、
9、连接,调试参数,得到运行结果。控制台程序有两种方法运行:以命令行方式运行:在cmd命令行窗口(开始-运行-打开,cmd-确定,进入命令行窗口)中找到hello.exe所在的文件夹,输入hello.exe lena.jpg(要求lena.jpg与编译连接好的hello.exe在同一个目录下),运行。指定输入参数:在项目配置页依次找Project-Settings-Debug-Program arguments,在其中直接输入程序要求的外部输入参数lena.jpg,运行该程序。(要求lena.jpg与工程文件在同一个目录下。)为更好地理解控制台程序输入参数的问题,请将程序hello.cpp与程序h
10、ello2.cpp做仔细的对比,认真体会。二者的区别在于,hello2.cpp中的main函数带有两个参数,argc和argv,如下面形式:int main(int argc, char* argv) 或 int main(int argc, char* argv)这两个参数的作用是:argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如程序是hello.exe,如果在命令行运行该程序,运行命令为:hello.exe lena.jpg,则:argc的值是 2,argv0是hello.exe,argv1是lena.jpg。(6) 修改hello2程序,使其可以同时读取、显示多幅
11、图像。4. 实验回答问题(1) 什么是OpenCV?(2) 通过实验,查看IplImage结构体的数据结构。请给出IplImage结构体的数据结构。(3) 请说明OpenCV配置过程中,各个步骤的意义。(4) 如何修改程序,使得程序可以显示多幅图像?5. 练习【基础练习】试着不用参考给定例程,自己写出本次实验的代码,掌握OpenCV图像处理程序的基本流程和框架。【扩展练习】编程实现加载并显示三幅图像,其中一幅通过指定文件名的方式读取,另外两幅通过外部输入参数读取。6. 实验报告要求实验报告要求写明以下7方面内容:(1) 写明实验目的。(2) 写明实验内容和步骤。(3) 写出完整的控制台程序代码
12、,并加详细的注释。(仅对hello.c)(4) 描绘并解释实验结果,并对实验结果进行分析。(5) 写明实验中存在的不足,以及改进的方法。(6) 回答实验中涉及到的问题。(7) 写出本次实验的体会。7. 预习内容 (1)如何用摄像头采集图像并进行显示? (2)OpenCV功能的进一步了解。8. 参考程序代码/* 程序名:hello.cpp 功 能:读入指定文件,并在屏幕上显示*/#include cv.h#include highgui.h#define FILENAME lena.jpg/使用宏定义,指定图像文件名void main()IplImage* pImg;/定义图像结构变量指针 pI
13、mg=cvLoadImage(FILENAME,1);/加载指定文件cvNamedWindow(image,1);/创建窗口,第2个参数为1表示固定大小,0表示可变大小cvShowImage(image,pImg);/在指定窗口显示图像文件cvWaitKey(0);/等待按键,若无此句,程序运行时看不到结果cvDestroyWindow(image);/销毁窗口cvReleaseImage(&pImg);/释放图像文件/* 程序名:hello2.cpp 功 能:从磁盘中读入任意图像文件,并将图像显示在屏幕上 */#include cv.h#include highgui.h/在main函数中,
14、argc表示主程序接收的参数个数,argv数组接收程序参数/如:当argc=2时,argv0表示第0个参数(可执行程序本身),argv1表示第1个参数(需人为输入)/当argc=1时,表示不需要从外界接收参数int main(int argc, char* argv)IplImage* pImg;/声明IplImage指针/载入图像if (argc=2 & (pImg=cvLoadImage(argv1,1)!=0)cvNamedWindow(image,0);/创建窗口cvShowImage(image,pImg);/显示图像cvWaitKey(0);/等待按键cvDestroyWindow
15、(image);/销毁窗口cvReleaseImage(&pImg);/释放图像return 0;return -1;9. OpenCV函数解释OpenCV的函数和数据类型命名规则如下:(1) 宏全部使用大写字符,字间用下划线分隔,如:CV_MAX_DIM,IPL_DEPTH_32F。(2) 数据类型以Cv开头,如:CvSize,CvPoint3D64f等。(3) 函数以cv开头,如:cvLoadImage、cvSaveImage等。需要包含的OpenCV头文件:cv.h:OpenCV的基本函数头文件。highgui.h:用于用户GUI界面设计的OpenCV专用库,包括很多Windows AP
16、I接口函数。OpenCV基本函数:cvLoadImage从文件读取图像语法:IplImage* cvLoadImage(const char* filename,int flag=1)参数:filename:待载入的文件名,包括扩展名。可以载入BMP,DIB,JPEG,PNG,PBM,PGM,PPM,SR,RAS和TIFF等文件格式。flag表示是否是彩色图像(多通道),默认为1,表示读入的图像被强制为3通道的彩色图像flag=0,表示载入图像强制为单通道灰度图像flagOptions-Directories: 在Include files中,添加如下目录:C:PROGRAM FILESOPE
17、NCVCVINCLUDEC:PROGRAM FILESOPENCVCVAUXINCLUDEC:PROGRAM FILESOPENCVCXCOREINCLUDEC:PROGRAM FILESOPENCVOTHERLIBSHIGHGUIC:PROGRAM FILESOPENCVOTHERLIBSCVCAMINCLUDE点击Options之后页面如下:配置完之后,页面如下:(2)配置库文件目录依次打开Tools-Options-Directories: 在Library files中,添加如下目录:C:PROGRAM FILESOPENCVLIB配置完之后页面如下:(3)添加库文件链接这一步对于每一
18、个工程都要配置一次,在新建工程之后,依次打开Project-Settings-Link,在Object/library modules中,添加所需要的lib文件,以空格分开。通常包括:cxcore.lib cv.lib cvaux.lib highgui.lib cvcam.lib ml.lib点击Settings-Link,添加6个库之后的页面如下:程序在链接、运行时,需要OpenCV的动态链接库的支持,如果程序提示找不到dll文件,则需将OpenCV的所有动态链接库文件(OpenCV-bin目录下的8个dll文件)直接拷到系统安装目录system32下,这样OpenCV的程序无论在本机的何
19、处运行,都没有问题了。实验2 图像采集与显示(综合性,第2章)1. 实验目的(1) 了解OpenCV中使用摄像头采集图像的方法。(2) 掌握OpenCV进行图像采集、存储与显示的实现方法。2. 实验内容编写程序,用摄像头采集彩色图像并进行彩色和灰度显示。3. 实验步骤(验证性实验)(1) 首先保证计算机安装了某个摄像头(webcam)及其驱动程序,摄像头能正常采集。(2) 创建OpenCV控制台项目。(3) 添加源文件gray.cpp,并输入相关代码。(4) 编译、连接、运行,得到实验结果。4. 实验回答问题(1) IplImage结构体中imageData的格式是什么样的? (2) 函数cv
20、CreateImage的最后一个参数的含义是什么?(3) 画出示例代码gray.cpp程序的流程图。5. 练习【基础练习】修改程序,使得程序能读取硬盘上的AVI视频文件并逐帧显示。【扩展练习】自己编写完整程序实现以下功能:(1) 创建一个窗口(2) 载入图像(3) 显示图像(4) 创建一幅新图像(5) 将原图像转换为灰度图像赋给新图像(6) 在新窗口显示新图像(7) 销毁窗口,释放图像6. 实验报告要求实验报告要求写明以下7方面内容:(1) 写明实验目的。(2) 写明实验内容和步骤。(3) 写出完整的控制台程序代码,并加详细的注释。(4) 描绘并解释实验结果,并对实验结果进行分析。(5) 写明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2019年整理 2019 整理 数字图像 处理 实验 教程 V31 zsj
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。