博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Opencv笔记(十四)——边缘检测算法canny
阅读量:7114 次
发布时间:2019-06-28

本文共 1336 字,大约阅读时间需要 4 分钟。

简介

  Canny 边缘检测算法 是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的 最优算法,它是由很多步构成的算法。

最优边缘检测的三个主要评价标准:

  • 低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。
  • 高定位性: 标识出的边缘要与图像中的实际边缘尽可能接近。
  • 最小响应: 图像中的边缘只能标识一次。

算法过程

      1.噪声去除,可使用5x5的高斯滤波器;

      2.计算图像梯度,这里使用Sobel算子;

相同

      3.非极大值抑制,在获得梯度的大小和方向后,要对整幅图像进行扫描,那些非边界上的点.对每个像素进行检查,看其是不是周围具有相同梯度方向的点中最大。

     4.滞后阈值,要确定哪些边界才是真正的边界,这里需要设定两个阈值,即minVal和maxVal,当图像的灰度梯度高于maxVal才是真正的边界,低于minVal的边界会被抛弃,如果介于两者之间,就看这个点是否与被确定为边界的点相连。

如上图所示,A高于maxVal阈值,所以是真正的边界点,C虽然低于maxVal,但高于minVal且与A相连,所以C也是边界,B处于两阈值之间,且未与真正的边界点相连,所以B被抛弃。

Canny函数

  在Opencv中只需要一个cv2.Canny()函数就能完成上面的几步。下面是该函数原型,返回处理后的图像:

cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])
  • 第一个参数是需要处理的原图像,该图像必须为单通道的灰度图;
  • 第二个参数是阈值1,即minVal;
  • 第三个参数是阈值2 ,即maxVal;
  • 选参数中apertureSize就是Sobel算子的大小;
  • L2gradient参数是一个布尔值,如果为真,则使用更精确的L2范数进行计算(即两个方向的倒数的平方和再开放),否则使用L1范数(直接将两个方向导数的绝对值相加)。

代码实战

# coding=utf-8import cv2import numpy as npimg = cv2.imread("/home/wl/3.jpg", 0)res=cv2.resize(img,None,fx=0.4,fy=0.4,interpolation=cv2.INTER_AREA)#原图太大res = cv2.GaussianBlur(res,(3,3),0)dst = cv2.Canny(res,50,100)while(1):    cv2.imshow("Result",dst)    k = cv2.waitKey(1) & 0XFF    if k==ord('q'):        break;cv2.destroyAllWindows()

原图:

效果图:

  • 由于Canny只能处理灰度图,所以将读取的图像转成灰度图。用高斯平滑处理原图像降噪。
  • 调用Canny函数,指定最大和最小阈值,其中apertureSize默认为3。

转载于:https://www.cnblogs.com/longwhite/p/10397750.html

你可能感兴趣的文章
从羽泉到智能硬件,离婚后的胡海泉走过了一条什么样的道路?
查看>>
VR训练营第一期:聊聊全景拍摄和直播那点事
查看>>
Ubuntu 16.04下ssh启用root登录
查看>>
2016中国大数据大会暨大数据年度盛典将于12月20日在京举办
查看>>
双11大幕拉开,菜鸟智能机器人也将测试运行
查看>>
Mac OS 10.12使用SecureCRT 8.1.4无法保存密码的问题解决
查看>>
windbg调试实例(4)--句柄泄露
查看>>
关于directX最近的学习方案
查看>>
Maven在Eclipse中的实用小技巧
查看>>
红黑树
查看>>
常见自动化测试工具,你用过哪些?
查看>>
JdbcTemplate使用小结
查看>>
2014 网选 5011 Game(Nim游戏,数学题)
查看>>
微软官方windows phone开发视频教程第一天视频(附下载地址)
查看>>
螺旋阵列
查看>>
Gut基础入门(十)Git远程分支
查看>>
VC编写的程序不能在其他机器上运行的解决方案(续)
查看>>
不变模式-类行为型
查看>>
正则表达式学习笔记
查看>>
LVM2逻辑卷之1——创建及扩容
查看>>