77范文网 - 专业文章范例文档资料分享平台

数字图像处理实验教程-V3.1-zsj

来源:网络收集 时间:2019-04-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

数字图像处理实验教程 V3.1

青岛科技大学

数字图像处理实验教程

信息学院 张淑军 版本:V3.1

2011年3月试行 2012-2014年修订

1

数字图像处理实验教程 V3.1

编写说明

1. 本书是《数字图像处理》实验教程,配合理论授课内容,巩固所学知识,锻炼学生动手开发能力。 2. 实验课需要学生预习,做好必要的准备,以保证实验效果。每次实验的内容和目标非常明确,实验过程中请同学们认真动手,举一反三,不依赖例程,能掌握编程思想。 3. 为加强学生对于所掌握内容的理解,设计了实验回答问题,环环相扣,使学生在编程实践的同时巩固知识点,对所学知识融会贯通,为进入本次实验内容打下基础。 4. 每次实验由例程和练习两部分组成,例程包含了本次实验的核心内容,要求学生统一掌握。练习部分考虑了学生编程水平的高低,分为:基础练习;扩展练习;高层进阶三个层次,以激励编程好的学生积极主动往更高层次努力,培养、选拔优秀学生;大多数的学生可以完成扩展练习。 5. 每课内容最后罗列了所用到的基本OPENCV函数,方便学生查找使用。未附说明的函数请学生自行查找OPENCV电子书,锻炼自己解决问题的能力。 6. 每次实验完成之后,请学生按要求撰写实验报告,并在最后详细记录“实验收获与总结”,将实验中遇到的问题和解决过程作为经验教训记录下来,训练学生及时总结归纳和反思、记录的习惯。

2

数字图像处理实验教程 V3.1

目 录

目 录 ................................................................................................................................................ 3 实验1 图像文件读入和显示(验证性,第1章) .................................................................... 4 实验2 图像采集与显示(综合性,第2章) .......................................................................... 16 实验3 图像坐标变换(综合性,第2章) .............................................................................. 20 实验4 图像灰度变换(综合性,3.1节) ............................................................................... 25 实验5 直方图均衡化(验证性,3.3节) ............................................................................... 28 实验6 滤波器设计(综合性,3.4节) ................................................................................... 34 实验7 颜色空间转换(综合性,第4章) .............................................................................. 41 实验8 图像傅里叶变换(验证性,第5章) .......................................................................... 47 拓展实验 基于MFC的图像处理程序设计(综合性) ............................................................. 53 参考文献......................................................................................................................................... 53

3

数字图像处理实验教程 V3.1

实验1 图像文件读入和显示(验证性,第1章)

1. 实验目的

(1) 熟悉VC++6.0开发环境。

(2) 了解OpenCV开发库,学会在VC++6.0环境下安装和配置OpenCV。 (3) 掌握开源库的通用安装和配置方法。

(4) 通过运行一个简单的程序,初步了解OpenCV程序的特点。 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所给的代码,并保存。 ③编译、连接,创建所需的工作区,在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

的相关代码,编译、连接,调试参数,得到运行结果。

控制台程序有两种方法运行:

①以命令行方式运行:在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.exe,如果在命令行运行该程序,运行命令为:hello.exe lena.jpg,则:

4

数字图像处理实验教程 V3.1

argc的值是 2,argv[0]是\,argv[1]是\。

(6) 修改hello2程序,使其可以同时读取、显示多幅图像。 4. 实验回答问题

(1) 什么是OpenCV?

OpenCV的全称是:Open Source Computer Vision Library 。OpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

(2) 通过实验,查看IplImage结构体的数据结构。请给出IplImage结构体

的数据结构。

nt nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/

int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */ int alphaChannel; /* 被OpenCV忽略 */ int depth; /* 像素的位深度

char colorModel[4]; /* 被OpenCV忽略 */ char channelSeq[4]; /* 同上 */

int dataOrder; /* 0 - 交叉存取颜色通道, 1 - 分开的颜色通道. */ int origin; /* 0 - 顶—左结构, 1 - 底—左结构

int align; /* 图像行排列 (4 or 8). OpenCV 忽略它,使用 widthStep 代替 */ int width; /* 图像宽像素数 */ int height; /* 图像高像素数*/

struct _IplROI *roi;/* 图像感兴趣区域. 当该值非空只对该区域进行处理 */ struct _IplImage *maskROI; /* 在 OpenCV中必须置NULL */ void *imageId; /* 同上*/

struct _IplTileInfo *tileInfo; /*同上*/

int imageSize; /* 图像数据大小(在交叉存取格式下imageSize=image->height*image->widthStep),单位字节*/ char *imageData; /* 指向排列的图像数据 */

int widthStep; /* 排列的图像行大小,以字节为单位 */ int BorderMode[4]; /* 边际结束模式, 被OpenCV忽略 */ int BorderConst[4]; /* 同上 */

char *imageDataOrigin; /* 指针指向一个不同的图像数据结构(不是必须排列的),是为了纠正图像内存分配准备的 */

(3) 请说明OpenCV配置过程中,各个步骤的意义。

配置VC++6.0环境

下面需要设置VC6.0环境,使得VC6.0在编译OpenCV程序时,能够知道从何处找到头文件和库文件。 (1)配置头文件目录

依次打开Tools->Options->Directories: 在

Include files中,添加如下目录(6个,通常用前面的4个即可): (2)配置库文件目录

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数字图像处理实验教程-V3.1-zsj在线全文阅读。

数字图像处理实验教程-V3.1-zsj.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/597195.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: