图像处理实验指导书版文档格式.docx
《图像处理实验指导书版文档格式.docx》由会员分享,可在线阅读,更多相关《图像处理实验指导书版文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
实验主机采用Pentium(R)42.93GHzCPU,1G+256M内存物理地址扩展;
方正17’’FC777K彩色显示器。
2视频采集卡参数设置
图像采集卡参数可以通过调用采集卡接口函数MV_GetDeviceParameter()和MV_SetDeviceParameter()来获取和设置,所设置参数的具体含义见《MICROVIEWVER.5.0程序员开发手册》。
3图像处理程序设计
通过视频采集卡获得数字图像后,可以通过软件或硬件的处理手段完成对图像的增强、恢复以及压缩或编码等处理工作。
本课程实验由实验者学习使用图像采集卡采集图像,实验中提供使用VC++编写的应用程序框架,由实验者编写的核心处理函数,观察实验结果。
实验共分三个部分:
●实验一学习BMP图像文件格式,统计图像直方图。
使用C语言编程实现RAW到BMP文件格式的转换,并统计该图像直方图;
●实验二学习使用视频采集卡采集和显示图像,重点了解视频采集卡的工作原理,图像采集程序设计,图像的存储格式以及图像的读取和显示方法;
●实验三设计中值滤波函数,完成对图像的中值滤波处理,观察和分析中值滤波结果。
4实验中的注意事项
任何时候,不要带电插拔连接线,尤其是视频源输入输出连接线,如需插拔连接线,需要先关断任何一端的电源,以免损坏采集卡。
实验一RAW到BMP文件的转换及图像直方图统计
一、实验目的
本次实验的目的是学习BMP文件格式,掌握将RAW图像文件格式转换为BMP文件格式的方法,完成图像直方图的统计。
二、实验方案
实验中提供的RAW文件,包含一幅大小512x512像素,256级灰度的图像。
首先将其读入内存,并创立一个新的BMP文件,根据提示的图像大小,完成BMP文件头、信息头、调色板和图像数据的写入。
随后统计该图像的直方图,打印统计结果
三、程序流程图
图1RAW到BMP文件转换流程图
四、问题
1、什么是调色板?
说明其数据结构。
如何确定BMP文件调色板的大小?
2、BMP文件中图像数据是按什么顺序存放的?
实验二图像的采集与显示
本次实验的目的包括:
1.了解一般图像处理系统的构成,重点了解图像采集卡的工作原理;
2.了解图像采集程序设计方法;
3.学习图像的存储格式以及图像的读取和显示方法。
由模拟摄相机输出视频信号到视频采集卡的视频输入端,经视频采集卡解码后生成单幅数字图像,将生成的图像以Bmp格式保存到PC机硬盘上,之后利用应用程序将所存储的Bmp图像输出到显示器上。
三、图像采集卡使用流图
图1图像采集卡使用流图
四、图像采集卡操作步骤
在开发图像采集程序时,应遵循以下操作步骤:
Step1.使用MV_OpenDevice()函数获取设备句柄;
Step2.在MV_OperateDevice(CurDevice,MVRUN)函数中,调用上一步获取的设备句柄,和MVRUN参数,使采集卡处于工作状态;
Step3.利用MV_SetDeviceParameter()设置图像显示的窗口句柄;
Step4.使用采集卡SDK提供的其它函数操作设备;
Step5.停止采集卡,MV_OperateDevice(CurDevice,MVSTOP);
Step6.采集工作完成后,使用MV_CloseDevice(CurDevice)关闭采集卡。
五、示例程序以及函数说明
示例程序见SingleCapture工程文件。
实验中用到的函数有:
●采集卡初始化和关闭函数
1.MV_OpenDevice
原型:
MVAPIHANDLEWINAPIMV_OpenDevice(DWORDIndex,BOOLbRelese)
说明:
初始化,创建Index指定的设备。
2.MV_CloseDevice
MVAPIVOIDWINAPIMV_CloseDevice(HANDLEhDevice)
不再使用以hDevice标识的设备时,关闭该设备。
●采集卡操作函数
1.MV_GetDeviceNumber
MVAPIDWORDWINAPIMV_GetDeviceNumber()
返回主机中正确安装的采集卡数目。
2.MV_OperateDevice
MVAPIRUNOPERWINAPI
MV_OperateDevice(HANDLEhDevice,RUNOPEROper)
操纵设备,即使采集卡处于运行/停止/暂停状态。
3.MV_SetDeviceParameter
MVAPIBOOLWINAPI
MV_SetDeviceParameter(HANDLEhDevice,MV_PARAMTEROper,
DWORDVal);
设置设备和SDK的工作参数。
4.MV_GetDeviceParameter
MVAPILONGWINAPI
MV_GetDeviceParameter(HANDLEhDevice,MV_PARAMTEROper)
得到设备参数的当前值。
●捕获操作函数
1.MV_CaptureSingle
MVAPIPVOIDWINAPIMV_CaptureSingle(HANDLEhDevice,
BOOLIsProcess,PVOIDpInBuff,ULONGBuffLen,PMV_IMAGEINFOpInfo)
捕获一幅图像的数据。
2.MV_SaveFile
MVAPIBOOLWINAPIMV_SaveFile(PUCHARFileName,
MV_FILETYPEFileType,PVOIDpImageData,PMV_IMAGEINFOpImage,
ULONGImageTotal,BOOLIsUpDown,BOOLColororNot,ULONGQuality,
BOOLm_bRGB15=TRUE)
保存pImageData中图像到MV_FILETYPE指定类型的文件。
(以上函数详细说明见《MICROVIEWVER.5.0程序员开发手册》)
实验三图像中值滤波
本次实验的目的是学习使用C++编写图像中值滤波程序,对图像进行中值滤波处理,分析中值滤波对图像的影响。
实验中提供使用MicrosoftVisualC++设计生成的基于WindowsXP操作系统的图像处理程序框架,由实验者编写中值滤波函数,对采集到的数字图像做中值滤波处理,观察和分析中值滤波对图像的影响。
三、中值滤波算法
分别使用1x3,3x1和3x3窗口对图像做中值滤波,比较窗口大小对中值滤波的影响。
设计如下的2个函数:
1.使用冒泡法对一维数组进行排序,并返回数组元素的中值
/***********************************************************************
*函数定义:
*unsignedcharGetMidValue(unsignedchar*bArray,intnFilterLen)
*参数说明:
*unsignedchar*bpArray-指向要获取中值的数组指针
*intnFilterLen-数组长度
*返回值:
*unsignedchar-返回指定数组的中值。
***********************************************************************/
2.中值滤波函数
*MedianFilter(LPSTRlpDIBBits,LONGlWidth,LONGlHeight,intnFilterH,intnFilterW,intnFilterMX,intnFilterMY)
*LPSTRlpDIBBits-指向源DIB图像指针
*LONGlWidth-源图像宽度(象素数)
*LONGlHeight-源图像高度(象素数)
*intnFilterH-滤波器的高度
*intnFilterW-滤波器的宽度
*intnFilterMX-滤波器的中心元素X坐标
*intnFilterMY-滤波器的中心元素Y坐标
*BOOL-成功返回TRUE,否则返回FALSE。
四、框架程序
见MedianFilter工程文件。