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

    python中Roberts算子是什么

    小妮浅浅小妮浅浅2021-08-30 09:27:30原创2837

    说明

    1、Roberts算子又称罗伯茨算子,是最简单的算子,是利用局部差分算子寻找边缘的算子。

    用相邻两象素在对角线方向的差异来检测相似梯度幅值的边缘。垂直边缘的检测效果优于斜边缘,定位精度高,噪音敏感。

    2、通过OpenCV中的filter2D()函数实现。

    该函数的主要功能是通过卷积核实图像的卷积运算:

    def filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, borderType=None)

    实例

    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)
        # Roberts 算子
        kernelx = np.array([[-1, 0], [0, 1]], dtype=int)
        kernely = np.array([[0, -1], [1, 0]], dtype=int)
        
        x = cv.filter2D(grayImage, cv.CV_16S, kernelx)
        y = cv.filter2D(grayImage, cv.CV_16S, kernely)
        
        # 转 uint8 ,图像融合
        absX = cv.convertScaleAbs(x)
        absY = cv.convertScaleAbs(y)
        Roberts = cv.addWeighted(absX, 0.5, absY, 0.5, 0)
        
        # 显示图形
        titles = ['原始图像', 'Roberts算子']
        images = [rgb_img, Roberts]
        
        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中Roberts算子的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程

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

    专题推荐:python roberts
    品易云
    上一篇:python中socket建立客户连接 下一篇:python中Prewitt算子如何理解

    相关文章推荐

    • python操作xml的两种方法• python中htmlparser解析html• python中值传递和引用传递的区别• python位置参数如何使用• python位置参数的使用注意• python默认参数如何使用• python定义可变参数的两种形式• python逆向参数收集是什么• python函数如何返回多个值• reload在python中的使用• python中socket如何建立服务器• python中socket建立客户连接

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网