加载中…
个人资料
薄心之心
薄心之心
  • 博客等级:
  • 博客积分:0
  • 博客访问:142,807
  • 关注人气:29
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数字图像处理实验总结

(2013-07-01 12:32:32)
标签:

娱乐

分类: 以众人为师,当学以致用

 

OpenCV概述

一.OpenCV类库简介

OpenCV类库主要由CxCORE、CV、CVAUX、HighGUI、ML、CVCAM等库组成, 

 

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

 

(1) 什么是OpenCV?

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

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

(一)安装OpenCV

首先安装OpenCV(按照默认路径即可),注意安装时选中:

     Add<...>\OpenCV\bin to the system PATH

表示配置环境变量:将OpenCV的路径加入系统变量中。这样做的目的是在运行程序时,程序能够找到所需的OpenCV动态链接库文件,因为所有的动态链接库都置于\bin目录下。

   为便于程序运行,请将bin目录下的dll文件直接拷贝到系统安装目录 C:\Windows\System32 下。

(二)配置VC++6.0环境

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

(1)配置头文件目录

   依次打开Tools->Options->Directories: 在Include files中,添加如下目录(6个,通常用前面的4个即可):

(2)配置库文件目录

   依次打开Tools->Options->Directories: 在Library files中,添加如下目录:

(三)配置项目

   要使得VC6.0项目能够支持OpenCV,需要在项目中添加OpenCV的库文件链接,使程序能够知道所用的函数是来自哪个库。

   依次打开Project->Settings->Link,在Object/library modules中,添加所需要的lib文件,以空格分开。通常包括(6个):

cxcore.lib   cv.lib   cvaux.lib   highgui.lib   cvcam.lib   ml.lib 

(这一步对于每个新工程都要重新设置,通常用前面的4个即可)。

(四)编写程序

   现在,你就可以VC6.0下用OpenCV来编写程序啦!注意,要在C/C++代码文件开始处,添加所需的头文件。OpenCV提供的头文件有:

cxcore.h  cv.h  cvaux.h  highgui.h  cvcam.h  ml.h 

    程序在编译、链接、运行时,需要OpenCV的动态链接库的支持,如果程序提示找不到dll文件,则需将OpenCV的所有动态链接库文件(详见OpenCV-dll文件夹里)直接拷到系统目录system32下,这样程序无论在何处运行,都没有问题了。

    

(4) 如何修改程序,使得程序可以显示多幅图像?

 

 

实验2  图像采集与显示(综合性,第2章)

(1) IplImage结构体中imageData的格式是什么样的? 

Char*     

(2) 画出示例代码gray.cpp程序的流程图。(不用复习)

(3) 如何修改程序,使得程序能读取硬盘上的AVI视频文件并显示?

答:cvCaptureFromCAM从摄像头捕捉图像

cvCaptureFromAVI从视频获取图像 

 

实验3  图像坐标变换(综合性,第2章)

1) 请给出图像坐标变换的基本公式和实现原理,并着重说明例程中的算法。

(2) 如何修改程序,使得每按Escape键一次,图像就旋转一次?

答:将 if( cvWaitKey(5) == 27 )//如果按键为Escape键,则退出循环

break;

angle =(int) (angle delta) 360;

中的break注释掉

 

实验4  图像灰度变换(综合性,3.1节)

 

1. 实验问题回答

(1) 如何获取一幅图像中某个像素点的灰度值?

            val= (uchar) src->imageData src->widthStep*y x]; //得到该像素点的灰度值

(2) 如何给目标图像中的像素点重新赋灰度值?

dst->imageData[ dst->widthStep*y x] val;//对像素点重新赋灰度值

(3) 如何修改程序,使得图像能够对彩色图像(三通道)进行幅值的映射?

 

 

            实验5  直方图均衡化(验证性,3.3节)

1. 实验问题回答

简述图像直方图均衡化的计算步骤。

1.累积 2.取整 3,映射  4.计算

实验6  滤波器设计(综合性,3.4节)

1. 实验问题回答

简述空域滤波器的分类及各种滤波器的算法原理。

 

实验7  颜色空间转换(综合性,第4章)

1. 实验问题回答

彩色图像文件的存储结构是什么?以JPEG和BMP为例,给出它们的文件结构。

实验8  图像傅里叶变换(验证性,第5章)

1. 实验问题回答

(1) 傅里叶变换有哪些重要的性质?

答: 对称性质          线性性质

奇偶虚实性        尺度变换性质

时移特性          频移特性 

微分性质          时域积分性质

(2) 图像的二维频谱在显示和处理时应注意什么?

答:1.进行傅里叶变换的图像应该是灰度图形,原rgb彩色图像无法进行相应变换

2.注意使用fftshift函数将频谱的零频分量移至频谱的中心

(3) 讨论不同的图像内容与傅里叶频谱之间的对应关系。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有