滤波和边缘检测

上传人:cn****1 文档编号:469885150 上传时间:2023-04-02 格式:DOCX 页数:12 大小:359.02KB
返回 下载 相关 举报
滤波和边缘检测_第1页
第1页 / 共12页
滤波和边缘检测_第2页
第2页 / 共12页
滤波和边缘检测_第3页
第3页 / 共12页
滤波和边缘检测_第4页
第4页 / 共12页
滤波和边缘检测_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《滤波和边缘检测》由会员分享,可在线阅读,更多相关《滤波和边缘检测(12页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

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

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

7、法 会在断点的8邻域点中寻找满足低阈值的点,再根据此点收集新的边缘, 直到整个图像边缘闭合。2.中值滤波原理2.1通过从图像中的某个采样窗口取出奇数个数据进行排序2.2用排序后的中值取代要处理的数据即可实 验 数 据OPENCV程序代码:1)图像的平滑处理int main() Mat image = imread(H:/picture/l.jpg); imshow(Original picture, image);Mat Sal t_ Image = addSa lt Noise(image, 3000); /添加椒 盐噪声imshow(addSa ltN oise,Sa lt_ Image)

8、;Mat image3, image4;MedianFlitering(Salt_Image, image3); imshow(default median filter image, image3); wait Key();2)边缘检测(canny)int main()Mat srcImage = imread(H:/picture/l.jpg);if (!srcImage.da ta)return T;Mat dst;dst.create( srcImage.size(), srcImage.type() ); / 创 建与src同类型和大小的矩阵(dst)imshow(ds t, dst

9、); imshow(srcImage, srcImage);Mat conver_Image;cvtColor(srcImage, conver_Image, C0L0R_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_imag

10、e, 30, 90, 3); /原本是150, 100一般情况就是2:imshow(edgelmage,edge_image);dst = Scalar:all(0); /将 g_dstlmage 内的所有元素设置 为0Mat edge_imagel = srclmage.clone(); /将原图片 srclmage clone 到 edge imageedge_imagel.copyTo(ds t, edge_image);imshow(color edgeimage, dst);wait Key(0);return 0;边缘检测(Sobel)int main( int argc, cha

11、r* argv )Mat src, src_gray;Mat grad;char* window_name = Sobel gussion detecting;int scale = 1;/默认值int del ta = 0;/默认值int ddep th = CV_16S;/防止输出图像深度溢出int c;src = imread(H:/pic tu re/1.jpg);if( !src.da ta ) return T; /咼斯模糊GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );/变换为灰度图cvtColor( src,

12、src_gray, CV_RGB2GRAY );/加入高斯白噪声Mat sobel_src = addGaussianNoise(src_gray);/创建窗口namedWindow( window_name, CV_WINDOW_AUTOSIZE );/生成 grad_x and grad_yMat grad_x, grad_y;Mat abs_grad_x, abs_grad_y;/ Gradient X x方向梯度1,0: x方向计算微分即导数/Scharr( src_gray, grad_x, ddep th, 1, 0, scale, delta, BORDER_DEFAULT );

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

14、tScaleAbs( grad_y, abs_grad_y );/近似总的梯度addWeigh ted( abs_grad_x, 0.9, abs_grad_y, 0.9, 0, grad ) imshow( window_name, grad );wait Key(0); return 0;实验数据分析及处理示例图片角点检测情况:图一(x=3, v=204) R:77 6:16 B:58图二S3 addSaltNoise 口 X1 default median filter image X图一为示例图像加入椒盐噪声的图片。图二是用中值滤波后的图片。图三图四 Sobel Demo - Simp

15、le Edge Detector(x=334, v=2) L:32图五图六图三为将原图像进行灰度化后的图片,图四为在灰度图片上面用 canny算子进行边缘提取的图片图五为将在灰度图片上面进行边缘提取后的图片夹到原图像的结 果,图六为使用了 sobel算子进行边缘提取的结果图九图七为加入sigma=0.1的高斯白噪声后,利用canny算子进行的轮 廓提取。图八为加入sigma=0.5的高斯白噪声后,利用canny算子进行 的轮廓提取。图九为加入sigma=0.1的高斯白噪声后,利用sobel算子 进行的轮廓提取实验结果分析(1) 通过这次实验,我们能够看出中值滤波对过滤椒盐噪声的效果 很好,主要是因为椒盐噪声的黑白的值为255和0,通过中值滤波能够 较好的过滤出里面的噪声。(2) 通过使用canny算子和sobel算子对所给的图像进行边缘提 取,我们能够看到canny算子在边缘提取中,效果比使用sobel算子进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号