基于openv的图像滤波实验.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机体系结构 图像的滤波处理 —第二次编程练习 概述: 有关程序:程序运行的时候先输入MSE PSNR的输出文件地址,再输入希望滤波的图片地址,接着输入原来未污染的图片地址,这时输出受污染的图片与原图的MSE, PSNR,接着选择滤波器类型,输出滤波图片保存位置,同时写入滤波后的MSE,PSNR。这时用户可以选择重新换一张图片滤波或者对同一张图片进行不同滤波处理 有关报告:报告第一部分介绍程序实现的主要功能,第二部分介绍滤波实现理论思路,第三部分对滤波的结果进行量化分析(对提供的10张图片分别进行不同窗口大小的均值,中值滤波,改进的自适应中值滤波,以及双边滤波,并对结果分析,计算滤波后的MSE,PSNR,并附表格。第四部分主要是编程的心得体会。 一. 主要编程实现的功能 主要对输入的图像进行了基于3*3窗口,以及5*5窗口的线性均值滤波;基于3*3窗口,以及5*5窗口的非线性的中值滤波。在提高部分,在线性滤波的基础之上,采用了同时考虑像素点与中心像素点距离,以及像素值差距的双边滤波器;在非线性的中值滤波器的基础上,采用了自适应的中值滤波器,也即根据窗口中噪声点的多少自动地调节滤波窗口的大小,这两种改进的滤波方法都在滤除噪声点的同时保护边缘特性,其中双边滤波器对高斯噪声的滤波效果较为明显,而自适应的中值滤波器对于椒盐噪声的滤波效果较好。 二. 设计思路 (一)对图片进行基本的打开,保存等操作 在刚开始编程的时候,没有了解到可以调用opencv的库函数进行图片的调用,就采取了直接读取图片的文件头信息头的方式,进行图片的读入以及写入操作。在这个过程中,我也了解到了位图的信息头,文件头,像素点的表达方式。 位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据,如下为位图文件头的结构体。 typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER; 位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。如下为位图的信息结构体, typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO; 位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。以下是位图信息头结构的定义: typedef struct tagBITMAPINFOHEADER{ // bmih DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; 在实际的操作中,我们可以通过定义位图的信息头,文件头等结构体,通过读入的方式,来引用结构体中像素点的像素值,图片的长度,宽度等。下图为使用读入的方法查看图片的信息 然而在之后,我了解到可以使用opencv的库函数进行操作,就直接使用cvLoadImage,这个函数进行图片的读入,使用image-imageData的方式来引用图片的像素点值,从而进行滤波的操作。 (二)不同滤波器实现原理 1. 均值滤波器 (1)原理 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度值g(x,y),即,m为该模板中包含当前像素在内的像素总个数。 (2)模板采用 均值滤波的时候,采用不同大小的掩膜。不同系数的掩膜,得到的滤波效果会有很大的差别。根

文档评论(0)

jizhun4585feici + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档