ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:136.35KB ,
资源ID:5138167      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5138167.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西安工业大学opencv大作业Word格式文档下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

西安工业大学opencv大作业Word格式文档下载.docx

1、3、椒盐(Salt and pepper)噪声:主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生泊松噪声。4、量化噪声:此类噪声与输入图像信号无关,是量化过程存在量化误差,再反映到接收端而产生,其大小显示出数字图像和原始图像差异。本文为了分析不同去噪方法的应用范围,将原图像分别加入高斯噪声及椒盐噪声,运用Matalab编程实现两种不同滤波方法的去噪结果,并据此进行比较得出相应结论。下面几幅图为本文所选用的经过灰度变换后得到的图像、添加椒盐噪声和高斯噪声后的图像:2去噪的三种常用方法2.1.均值滤波均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。其基本原理是用均值替代原图像中的各

2、个像素值,即对待处理的当前像素点,选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点,作为处理后图像在该点上的灰度,即,其中,为模板,为该模板中包含当前像素在内的像素总个数。如下即分别为用中值滤波对加有高斯噪声、椒盐噪声、的图像处理后的对比图:2.2.中值滤波中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。其实现原理如下:将某个像素邻域中的像素按灰度值进行排序,然后选择该序列的中间值作为输出的像素值,让周围像素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点。其具体的操作是:首先确定一个以某个像素为中心点的

3、领域,一般为方形领域(如3 * 3、5 * 5的矩形领域),然后将领域中的各个像素的灰度值进行排序。假设其排序为:,取排好序的序列的中间值作为中心点像素灰度的新值,这里的邻域通常被称为窗口。当窗口在图像中上下左右进行移动后,利用中值滤波算法可以很好地对图像进行平滑处理。如下即分别为用中值滤波对加有高斯噪声、椒盐噪声的图像处理后的对比图:2.3高斯滤波由于高斯函数的傅立叶变换仍是高斯函数, 因此高斯函数能构成一个在频域具有平滑性能的低通滤波器。可以通过在频域做乘积来实现高斯滤波。均值滤波是对是对信号进行局部平均, 以平均值来代表该像素点的灰度值。矩形滤波器(Averaging Box Filte

4、r)对这个二维矢量的每一个分量进行独立的平滑处理。通过计算和转化 ,得到一幅单位矢量图。这个 512512的矢量图被划分成一个 88的小区域 ,再在每一个小区域中 ,统计这个区域内的主要方向 ,亦即将对该区域内点方向数进行统计,最多的方向作为区域的主方向。于是就得到了一个新的6464的矢量图。这个新的矢量图还可以采用一个 33模板进行进一步的平滑。3.结果对比与分析根据以上实验结果进行对比分析,可以得出以下结论:(1)对于均值滤波, 由以上处理后的图像可以看到:均值滤波对高斯噪声的抑制是比较好的,处理后的图像边缘模糊较少。但对椒盐噪声的影响不大,因为在削弱噪声的同时整幅图像内容总体也变得模糊,

5、其噪声仍然存在。 (2)对于中值滤波,由图像处理的结果可以看出,它只影响了图像的基本信息,说明中值滤波对高斯噪声的抑制效果不明显。这是因为高斯噪声使用随机大小的幅值污染所有的点,因此无论怎样进行数据选择,得到的始终还是被污染的值。而由图还可以看出,中值滤波对去除“椒盐”噪声可以起到很好的效果,因为椒盐噪声只在画面中的部分点上随机出现,所以根据中值滤波原理可知,通过数据排序的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果很好,同时画面的轮廓依然比较清晰。由此看来,对于椒盐噪声密度较小时,尤其是孤立噪声点,用中值滤波的效果非常好的。均值滤波对高斯噪声有较好的抑制作用,

6、而对于椒盐噪声的处理中值滤波要略微有优势。中值滤波使得那些更亮(或者更暗)的点更像他周围的值。所以它在滤除噪音的同时,可以较好地保留细节轮廓。为了验证上述结论,我先给一幅图像加入椒盐噪声,然后用分别用中值滤波、均值滤波处理图像,进行对比:带噪声图像 均值滤波4.设计总结八周的opencv的学习,在老师的指导和同学相互帮助下,我学到了不少东西。针对本次大实验,我已经比较熟悉opencv,通过前几次对opencv的学习,能操作一些基本的图像显示,及其基本的图像处理,这次对图像复原和增强进行处理,通过查阅资料,比较了他们方法之间的优点和缺点,对我重新认识了opencv对图像处理的能力,虽然仍有很多未

7、学会,在编码阶段也遇到过一些困难,不过经过询问都一一解决,通过对这门课的实践学习让我意识到理论学习很重要,更重要的是让我看到了将理论与实际相结合,看到了将理论与实际相结合才能更好的发挥理论的作用和产生实际的效果,才更能发挥我们所学的知识的作用,更好的掌握理论知识和提高实践能力。5. 参考资料1 学习OpenCV中文版,译者:于仕琪刘瑞祯,清华大学出版社6.程序源代码#include cv.hhighgui.h#include using namespace std;bool FilterAV(IplImage* &image,int k);bool FilterAV2(IplImage* &b

8、ool FilterMid(IplImage* &bool FilterMid2(IplImage* &bool FeatureTrack(IplImage* &image);bool EdgeTrack(IplImage* &image,int threshold1,int threshold2);int main(int argc,char *argv)/argc指变量的个数,*argv指向字符变量IplImage *img=0;int height,width,step,channels;uchar *data;/载入图像/img=cvLoadImage(OpenCvDemo.jpg,0

9、);/转化为单通道,灰度图像5img=cvLoadImage(if (!img)printf(could not load image file: %sn,);exit(0);/获取图像数据height=img-height;width=img-width;step=img-widthStep;channels=img-nChannels;data=(uchar*)img-imageData;processing a %dx%d image with %d channelsn,height,width,channels);/创建窗口cvNamedWindow(mainWin,CV_WINDOW

10、_AUTOSIZE);cvMoveWindow(,100,100);/移动窗口,以屏幕左上角的起点的偏移量/FilterAV2(img,3);/FilterAV(img,3);/FilterMid(img,3);/FilterMid2(img,3);FeatureTrack(img);/EdgeTrack(img,60,80);/显示图像cvShowImage(,img);/wait for a keycvWaitKey(0);/release the imagecvReleaseImage(&img);return 0;image,int k)/均值滤波IplImage *image2=cv

11、CreateImage(cvSize(image-width,image-height),image-depth,1);uchar *p=(uchar *)image2-/申请image2图像空间int m=(k-1)/2;for (int x=m;xheight-m;+x)for (int y=m;ywidth-m;+y)int SumData=0;for (int i=-m;ifor (int j=-m;j/k为奇数,计算k*k区域的灰度和SumData+=(int)(uchar *)image-imageData)(x+i)*image-widthStep+y+j;px*image-wi

12、dthStep+y=SumData/(k*k);image=cvCloneImage(image2);/拷贝给原图像image2);/销毁临时变量return true;/调用cvSmooth函数实现IplImage *dstImage=0;dstImage=cvCreateImage(cvGetSize(image),image-cvSmooth(image,dstImage,CV_BLUR,k,k);/CV_BLUR在3*3大小进行均值滤波image=cvCloneImage(dstImage);dstImage);/中值滤波函数uchar *ImagePix=(uchar *)image

13、2-uchar PixArray100;int t=0;for(int j=-m;/赋值操作PixArrayt+=(uchar *)image-for (int i=0;for(int j=0;/起泡法快速排序if (PixArrayjPixArrayj+1)uchar k=PixArrayj;PixArrayj=PixArrayj+1;PixArrayj+1=k;ImagePixx*image-widthStep+y=PixArray(k*k-1)/2;/IplImage *dstImage=0;/dstImage=cvCreateImage(cvGetSize(image),image-/

14、cvSmooth(image,dstImage,CV_MEDIAN,k,k);/CV_BLUR在3*3大小进行均值滤波/image=cvCloneImage(dstImage);/cvReleaseImage(&cvSmooth(image,image,CV_MEDIAN,k,k); /角点检测与边缘检测image)CvPoint2D32f corners100000;int CornerCount=0;IplImage *corners1=0,*corners2=0;corners1= cvCreateImage(cvGetSize(image), image-depth, 1);corners2= cvCreateImage(cvGetSize(image),image-cvGoodFeaturesToTrack(image,corners1,corners2,corners,&CornerCount,0.05,20,0);cout/cvNot(image,edge);/数组取反操作,没用我觉得cvCanny(image,image,threshold1,threshold2,3);/threshold1,threshold2中较小的控制边缘连接,大的控制边缘的初始分割

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2