AI: 人脸识别--图像处理基础(Image Processing Basics)二

AI: 图像识别基础(Image Processing Basics)二

四,边缘检测(Edge Detection)

边缘是什么?

    边缘勾画出目标物体;边缘蕴含了丰富的信息:方向、形状等;边缘是图像局部特征不连续(灰度突变、颜色突变、纹理结构突变等)的反映;标志着一个区域的终结和另一个区域的开始。对于计算机,边缘是指周围像素灰度有变化的那些像素的集合。主要表现为图像局部特征的不连续行;即信号发生奇异变化的地方。

例如:


Edge Detection?

  人眼对物体的区别依赖于图像的边缘;人的视觉细胞对物体的边缘特别敏感。我们先看到物体的轮廓,然后才判断这到底是什么东西。边缘检测技术能够将图像中最有意义的部分即边缘信息。提取出来,为进一步的图像分析、处理、识别奠定基础。

边缘处理前后对比。



在Azure AI 写Python 比较方便,这里继续介绍使用Python 做Edge Detection的方法

在Azure平台里使用的是,基于Sobel的边沿检测。


参考代码

import numpy
    import argparse
    import cv2

    image = cv2.imread('1.jpg')
    cv2.imshow("Original", image)

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    cv2.imshow("Gray", gray)

    sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0)
    sobely = cv2.Sobel(gray, cv2.CV_64F, 0, 1)

    sobelx = numpy.uint8(numpy.absolute(sobelx))
    sobely = numpy.uint8(numpy.absolute(sobely))
    sobelcombine = cv2.bitwise_or(sobelx,sobely)
    #display two images in a figure
    cv2.imshow("Edge detection by Sobel", numpy.hstack([gray,sobelx,sobely, sobelcombine]))

    cv2.imwrite("1_edge_by_sobel.jpg", numpy.hstack([gray,sobelx,sobely, sobelcombine]))


    if(cv2.waitKey(0)==27):
      cv2.destroyAllWindows()

基于Laplacian的边沿检测

import numpy
    import argparse
    import cv2

    image = cv2.imread('1.jpg')
    cv2.imshow("Original", image)

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    cv2.imshow("Gray", gray)

    #if don't use a floating point data type when computing
    #the gradient magnitude image, you will miss edges
    lap = cv2.Laplacian(gray, cv2.CV_64F)
    lap = numpy.uint8(numpy.absolute(lap))


    #display two images in a figure
    cv2.imshow("Edge detection by Laplacaian", numpy.hstack([lap, gray]))

    cv2.imwrite("1_edge_by_laplacian.jpg", numpy.hstack([gray, lap]))


    if(cv2.waitKey(0)==27):
     cv2.destroyAllWindows()

基于Canny的


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值