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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(滤波和边缘检测.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

滤波和边缘检测.docx

1、滤波和边缘检测课程实验报告2017 - 2018学年一学期课程名称: 计算机视觉及应用 实验名称: 滤波和边缘检测 班 级: 学生: 学号: 实验日期: 2017.12.3 地点: 指导教师: 成绩评定: 批改日期: 实验目的及要求边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。 这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。实验仪器设备实验设备为一台装有win10系统的PC,q

2、t+opencv软件。实验原理 大量的实验研究发现,由摄像机拍摄得到的图像受离散的脉冲、椒盐噪声和零均值的高斯噪声的影响较严重。噪声给图像处理带来很多困难,对图像分割、特征提取、图像识别等具有直接影响。椒盐噪声是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板像素按照像素值的

3、大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=medf(x-k,y-l),(k,lW) ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。在通过canny算子和sobel算子进行边缘检测。canny算子进行边缘检测的原理(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。(3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。sobel算子进行边缘检测的原理Sobel算子是一阶导数的边缘检测算子,在算法实现

4、过程中,通常使用33模板作为核与图像中的每个像素点做卷积和运算,然后选取合适的阈值以提取边缘。实验容1)通过给定的图像加入椒盐噪声,并通过相应的中值滤波算法过滤掉噪声。2)使用Canny算子提取给定的图像的边缘。3)通过对比Canny算子和Sobel算子在边缘检测上面的应用,比较两则之间的差别。4)在给定的图片上面添加噪声,然后在进行边缘检测。实验步骤及方法1.Canny算子边缘检测的原理1.1对原始图像进行灰度化Canny算法通常处理的图像为灰度图,因此如果摄像机获取的是彩色图像,那首先就得进行灰度化。对一幅彩色图进行灰度化,就是根据图像各个通道的采样值进行加权平均。以RGB格式的彩图为例,

5、通常灰度化采用的方法是Gray=0.299R+0.587G+0.114B。1.2对图像进行高斯滤波图像高斯滤波的实现可以用两个一维高斯核分别两次加权实现,也可以通过一个二维高斯核一次卷积实现。1)高斯核实现2)图像高斯滤波通常滤波和边缘检测是矛盾的概念,抑制了噪声会使得图像边缘模糊,这回增加边缘定位的不确定性;而如果要提高边缘检测的灵敏度,同时对噪声也提高了灵敏度。1.3用一阶偏导的有限差分来计算梯度的幅值和方向 其x向、y向的一阶偏导数矩阵,梯度幅值以及梯度方向1.4对梯度幅值进行非极大值抑制图像梯度幅值矩阵中的元素值越大,说明图像中该点的梯度值越大,但这不能说明该点就是边缘(这仅仅是属于图

6、像增强的过程)。在Canny算法中,非极大值抑制是进行边缘检测的重要步骤,通俗意义上是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点。1.5用双阈值算法检测和连接边缘Canny算法中减少假边缘数量的方法是采用双阈值法。选择两个阈值(关于阈值的选取方法在扩展中进行讨论),根据高阈值得到一个边缘图像,这样一个图像含有很少的假边缘,但是由于阈值较高,产生的图像边缘可能不闭合,未解决这样一个问题采用了另外一个低阈值。在高阈值图像中把边缘成轮廓,当到达轮廓的端点时,该算法会在断点的8邻域点中寻找满足低阈值的点,再根据此点收集新的边缘,直到整个图像边缘闭合。2.

7、中值滤波原理2.1通过从图像中的某个采样窗口取出奇数个数据进行排序2.2用排序后的中值取代要处理的数据即可实验数据OPENCV程序代码:1)图像的平滑处理int main() Mat image = imread(H:/picture/1.jpg); imshow(Original picture, image); Mat Salt_Image = addSaltNoise(image, 3000); /添加椒盐噪声 imshow(addSaltNoise,Salt_Image); Mat image3, image4; MedianFlitering(Salt_Image, image3);

8、 imshow(default median filter image, image3); waitKey();2)边缘检测(canny)int main()Mat srcImage = imread(H:/picture/1.jpg); if (!srcImage.data) return -1; Mat dst; dst.create( srcImage.size(), srcImage.type() ); / 创建与src同类型和大小的矩阵(dst) imshow(dst, dst); imshow(srcImage, srcImage); Mat conver_Image; cvtCo

9、lor(srcImage, conver_Image, COLOR_BGR2GRAY);/将彩色图转化为灰度图 imshow(coversion image, conver_Image); Mat Gaussian_image; blur( conver_Image, Gaussian_image, Size(3,3) ); imshow(Gaussian blur image, Gaussian_image); Mat edge_image; Canny(conver_Image, edge_image, 30, 90, 3); /原本是150,100 一般情况就是2: imshow(edg

10、eImage,edge_image); dst = Scalar:all(0); /将g_dstImage的所有元素设置为0 Mat edge_image1 = srcImage.clone(); /将原图片srcImage clone到edge image edge_image1.copyTo(dst, edge_image); imshow(color edgeImage, dst); waitKey(0); return 0;边缘检测(Sobel)int main( int argc, char* argv ) Mat src, src_gray; Mat grad; char* win

11、dow_name = Sobel gussion detecting; int scale = 1;/默认值 int delta = 0;/默认值 int ddepth = CV_16S;/防止输出图像深度溢出 int c; src = imread(H:/picture/1.jpg); if( !src.data ) return -1; /高斯模糊 GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT ); /变换为灰度图 cvtColor( src, src_gray, CV_RGB2GRAY ); /加入高斯白噪声 Mat so

12、bel_src = addGaussianNoise(src_gray); /创建窗口 namedWindow( window_name, CV_WINDOW_AUTOSIZE ); /生成 grad_x and grad_y Mat grad_x, grad_y; Mat abs_grad_x, abs_grad_y; / Gradient X x方向梯度 1,0:x方向计算微分即导数 /Scharr( src_gray, grad_x, ddepth, 1, 0, scale, delta, BORDER_DEFAULT ); Sobel( sobel_src, grad_x, ddept

13、h, 2, 0, 3, scale, delta, BORDER_DEFAULT ); convertScaleAbs( grad_x, abs_grad_x ); / Gradient Y y方向梯度 0,1:y方向计算微分即导数 /Scharr( src_gray, grad_y, ddepth, 0, 1, scale, delta, BORDER_DEFAULT ); Sobel( sobel_src, grad_y, ddepth, 0, 2, 3, scale, delta, BORDER_DEFAULT ); convertScaleAbs( grad_y, abs_grad_y

14、 ); /近似总的梯度 addWeighted( abs_grad_x, 0.9, abs_grad_y, 0.9, 0, grad ); imshow( window_name, grad ); waitKey(0); return 0;实验数据分析及处理示例图片角点检测情况: 图一 图二图一为示例图像加入椒盐噪声的图片。图二是用中值滤波后的图片。 图三 图四 图五 图六图三为将原图像进行灰度化后的图片,图四为在灰度图片上面用canny算子进行边缘提取的图片图五为将在灰度图片上面进行边缘提取后的图片夹到原图像的结果,图六为使用了sobel算子进行边缘提取的结果 图七 图八 图九 图七为加入s

15、igma=0.1的高斯白噪声后,利用canny算子进行的轮廓提取。图八为加入sigma=0.5的高斯白噪声后,利用canny算子进行的轮廓提取。图九为加入sigma=0.1的高斯白噪声后,利用sobel算子进行的轮廓提取实验结果分析(1)通过这次实验,我们能够看出中值滤波对过滤椒盐噪声的效果很好,主要是因为椒盐噪声的黑白的值为255和0,通过中值滤波能够较好的过滤出里面的噪声。(2)通过使用canny算子和sobel算子对所给的图像进行边缘提取,我们能够看到canny算子在边缘提取中,效果比使用sobel算子进行边缘提取的效果好。(3)通过这次实验,我们能够看出当加入sigma=0.1的高斯噪声时效果比加入sigma=0.5的高斯噪声时效果的边缘提取效果好。主要是因为当加入sigma大的高斯噪声的时候,在进行边缘提取时,会将噪声当成图像提取出来。同样加入sigma=0.1的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1