zoukankan      html  css  js  c++  java
  • 机器视觉——sobel算子边缘检测

      Sobel算法主要用于边缘检测,在技术上它是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值, Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。Sobel算子对于象素的位置的影响做了加权,与Prewitt算子、Roberts算子相比因此效果更好。 

      这次我们使用sobel算子边缘检测的方法来获取图像的边缘,任务图片如下:

       首先使用imshow()读取图片:

     

       接着使用Sobel()函数获取图片x,y轴上的边缘信息:

       其中CV_16S是为防止系统进行sobel运算后出现负值或大于255的值导致图片出现截断现象,而将图像数据类型改为16位有符号的数据类型。convertScaleAbs()函数是将其转换回原来的8位无符号数的形式将图片输出。经过sobel处理后得到如下两张图:

      x轴边缘

       y轴边缘

       接着使用addWeighted()函数将两张图组合起来,组合后的图片即是我们需要的图片边缘图像:

     

       最后一步,将图像反相,得到清晰的图片边缘图像:

     

       以上就是open CV使用Sobel算子边缘检测提取图片边缘的完整步骤。

  • 相关阅读:
    数据分析和个人提升
    数据分析和个人提升
    如何用SPSS做联合分析
    如何用SPSS做联合分析
    SPSS与Streams的集成实现实时预测
    互联网时代的精准招聘-Uber新手游有感
    OSEck中odo_vect2pcb的作用
    PHP收邮件receiveMail
    Android调试优化篇
    JSP之Model1
  • 原文地址:https://www.cnblogs.com/zhangmingfeng/p/12439505.html
Copyright © 2011-2022 走看看