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

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

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

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

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

1. 实验目的

(1) 了解OpenCV中使用摄像头采集图像的方法。

(2) 掌握OpenCV进行图像采集、存储与显示的实现方法。 2. 实验内容

编写程序,用摄像头采集彩色图像并进行彩色和灰度显示。

3. 实验步骤(验证性实验)

(1) 首先保证计算机安装了某个摄像头(webcam)及其驱动程序,摄像头能

正常采集。

(2) 创建OpenCV控制台项目。

(3) 添加源文件gray.cpp,并输入相关代码。 (4) 编译、连接、运行,得到实验结果。 4. 实验回答问题

(1) IplImage结构体中imageData的格式是什么样的?Char* (2) 函数cvCreateImage的最后一个参数的含义是什么? channels每个图元的颜色通道数。 可以是 1, 2, 3 或 4.通道是交叉存取的

(3) 画出示例代码gray.cpp程序的流程图。 5. 练习

【基础练习】修改程序,使得程序能读取硬盘上的AVI视频文件并逐帧显示。 【扩展练习】自己编写完整程序实现以下功能: (1) 创建一个窗口 (2) 载入图像 (3) 显示图像

(4) 创建一幅新图像

(5) 将原图像转换为灰度图像赋给新图像 (6) 在新窗口显示新图像 (7) 销毁窗口,释放图像 6. 实验报告要求

实验报告要求写明以下7方面内容: (1) 写明实验目的。

(2) 写明实验内容和步骤。

(3) 写出完整的控制台程序代码,并加详细的注释。 (4) 描绘并解释实验结果,并对实验结果进行分析。 (5) 写明实验中存在的不足,以及改进的方法。 (6) 回答实验中涉及到的问题。 (7) 写出本次实验的体会。 7. 预习内容

(1) 图像坐标变换有哪些?掌握每种变换的公式。 (2) 图像坐标变换的级联。 8. 参考程序代码 /* 程序名:gray.cpp

16

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

说 明:从摄像头采集图像,并转化为灰度图显示 */

#include #include #include #include

int main( int argc, char** argv ) {

//声明IplImage指针

IplImage* pFrame = NULL; IplImage* pFrImg = NULL; CvCapture* pCapture = NULL;

int nFrmNum = 0;

//创建窗口

cvNamedWindow(\ cvMoveWindow(\ cvNamedWindow(\ cvMoveWindow(\

if( !(pCapture = cvCaptureFromCAM(-1)))//从摄像头获取图像

//if( !(pCapture = cvCaptureFromAVI(“sea.avi”))) //从视频文件获取图像 { fprintf(stderr, \报错 return -2; }

//逐帧读取视频

while(pFrame = cvQueryFrame( pCapture )) { nFrmNum++;

//如果是第一帧,需要申请内存,并初始化 if(nFrmNum == 1) { pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);

pFrImg->origin=1;//设置图像数据起点为左下角,可设0查看不同结果 }

cvCvtColor(pFrame, pFrImg, CV_RGB2GRAY); //转化成单通道图像(灰度图像)

17

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

//显示图像

cvShowImage(\ cvShowImage(\ //等待按键事件 cvWaitKey(2);//当前帧采集到之后延迟2毫秒,以便能实现连续显示视频的效果 //cvWaitKey(0);//若参数为0,则无限制等待按键,只能显示第一帧图像 }

//销毁窗口

cvDestroyWindow(\ cvDestroyWindow(\ //释放图像和矩阵

cvReleaseImage(&pFrame); cvReleaseImage(&pFrImg); cvReleaseCapture(&pCapture); return 0; }

9. OpenCV函数解释

需要包含的OpenCV头文件 #include \#include \#include \

cxcore.h:OpenCV核函数头文件

OpenCV基本函数:

OpenCV支持从摄像头和视频文件(AVI)中捕捉图像,使用的两个函数是: cvCaptureFromCAM从摄像头捕捉图像 cvCaptureFromAVI从视频获取图像 返回值均为CvCapture结构体

cvCaptureFromCAM

功能:给从摄像头得到的视频流分配和初始化CvCapture结构。 语法:CvCapture* cvCaptureFromCAM( int index ); 参数:index 要使用的摄像头索引,默认为-1。

cvQueryFrame获取视频序列帧的每一帧

语法:IplImage* cvQueryFrame( CvCapture* capture ); 参数:capture 视频获取结构。

cvCreateImage创建图像函数

语法:IplImage *cvCreateImage(CvSize size, int depth, int channels)

18

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

参数:size:图像的宽、高。depth:图像图元深度。channels每个图元的颜色通道数。

返回值:IplImage结构体。

cvMoveWindow移动窗口函数

语法:void cvMoveWindows(name,int x,int y)

参数:name:窗口的名称。X:窗口左上角的x坐标。Y:窗口左上角的Y坐标。

cvGetWindowHandle获取窗口句柄函数 传入参数为窗口名称。 返回值为窗口的句柄。

cvCvtColor色彩空间转换函数

语法:void cvCvtColor(const CvArr* src, CvArr* dst, int code) 参数:src为源图像的不定数组,CvArr*指针,一般情况为IplImage型指针。Dst:目的地址的CvArr指针,一般为IplImage型结构体。Code:色彩转换空间, 常数定义为CV_2

19

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

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

1. 实验目的

(1) 掌握图像坐标变换的原理和方法。

(2) 能设计相应代码实现图像的旋转与缩放变换。 2. 实验内容

编写程序用OpenCV实现对图像的各种空间变换。需要实现的功能有:旋转与缩放。

3. 实验步骤(综合性实验) (1) 新建源文件rotate.cpp。

(2) 编写程序代码,使程序可以对图像进行旋转与缩放。 (3) 编译、连接(生成工作区)、运行该文件,得到实验结果。

(4) 通过给定的函数,理解所给代码的功能进而改写程序代码,使程序可以

对图像实现指定的空间变换,包括平移、旋转、缩放。 4. 实验回答问题

(1) 请给出图像坐标变换的基本公式和实现原理,并着重说明例程中的算法。 (2) 写出平移矩阵、缩放矩阵、旋转(绕z轴)矩阵。 5. 练习

【基础练习】

(1) 修改例程,使得程序可以每次按键旋转一次图像。(这个修改在现在的代

码上比较困难,需要把rotate函数解开,直接在main函数里写) (2) 修改例程,使得程序可以连续循环地旋转图像。

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

angle =(int) (angle + delta) % 360; 中的break注释掉

【扩展练习】

(1)使用cvFlip函数实现图像绕x,y轴或中心旋转。

(2)修改例程,使得程序可以在旋转图像的同时缩放图像。 【高层进阶】

(1) 使用cvResize函数实现图像的缩放功能。

(2) 编写程序,实现图像的平移、旋转和缩放综合功能。 6. 实验报告要求

实验报告要求写明以下7方面内容: (1) 写明实验目的。

(2) 写明实验内容和步骤。

(3) 写出空间变换所涉及的图像处理函数,并加详细的注释。 (4) 描绘并解释实验结果,并对实验结果进行分析。 (5) 写明实验中存在的不足,以及改进的方法。 (6) 回答实验中涉及到的问题。 (7) 写出本次实验的体会。 7. 预习内容

20

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

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