• 技术文章 >Python技术 >Python基础教程

    python中Sobel算子是什么

    小妮浅浅小妮浅浅2021-08-20 18:11:42原创4159

    说明

    1、Sobel算子的中文名称是索贝尔算子,是一种用于边缘检测的离散微分算子。

    它结合了高斯平滑和微分求导。

    2、Sobel算子在Prewitt算子的基础上增加了权重的概念,认为相邻点的距离对当前像素点的影响是不同的。

    距离越近的像素点对当前像素的影响越大,从而锐化图像,突出边缘轮廓。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    import cv2 as cv

        import matplotlib.pyplot as plt

         

        # 读取图像

        img = cv.imread('data.jpg', cv.COLOR_BGR2GRAY)

        rgb_img = cv.cvtColor(img, cv.COLOR_BGR2RGB)

         

        # 灰度化处理图像

        grayImage = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

         

        # Sobel 算子

        x = cv.Sobel(grayImage, cv.CV_16S, 1, 0)

        y = cv.Sobel(grayImage, cv.CV_16S, 0, 1)

         

        # 转 uint8 ,图像融合

        absX = cv.convertScaleAbs(x)

        absY = cv.convertScaleAbs(y)

        Sobel = cv.addWeighted(absX, 0.5, absY, 0.5, 0)

         

        # 用来正常显示中文标签

        plt.rcParams['font.sans-serif'] = ['SimHei']

         

        # 显示图形

        titles = ['原始图像', 'Sobel 算子']

        images = [rgb_img, Sobel]

         

        for i in range(2):

            plt.subplot(1, 2, i + 1), plt.imshow(images[i], 'gray')

            plt.title(titles[i])

            plt.xticks([]), plt.yticks([])

        plt.show()

    以上就是python中Sobel算子希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python sobel算子
    上一篇:python中Prewitt算子如何理解 下一篇:python中Sobel算子如何使用

    相关文章推荐

    • python位置参数如何使用• python位置参数的使用注意• python默认参数如何使用• python定义可变参数的两种形式• python逆向参数收集是什么• python函数如何返回多个值• reload在python中的使用• python中socket如何建立服务器• python中socket建立客户连接• python中Roberts算子是什么• python中Prewitt算子如何理解

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网