OpenCV 图像梯度算子

        本文是OpenCV图像视觉入门之路的第12篇文章,本文详细的介绍了图像梯度算子的各种操作,例如:Sobel算子Scharr算子laplacian算子等操作。

OpenCV 图像梯度算子目录

1 Sobel算子

2 Scharr算子

3 laplacian算子


1 Sobel算子

        Sobel算子是一种图像边缘检测算子,它是一种空间滤波器,可以检测图像中的边缘,而梯度运算是一种求导数的方法,可以用来检测图像中的局部变化。

import cv2
import numpy as np
from numpy import unicode

if __name__ == '__main__':
    # 不同算子的差异
    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
    sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
    sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)
    sobel_x = cv2.convertScaleAbs(sobel_x)
    sobel_y = cv2.convertScaleAbs(sobel_y)
    sobel_xy = cv2.addWeighted(sobel_x, 0.5, sobel_y, 0.5, 0)

    cv2.imshow("sobel_xy", sobel_xy)

    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
    cv2.imshow("img", img)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

2 Scharr算子

        Sobel算子是一种图像边缘检测算法,它可以检测图像中的水平边缘和垂直边缘。它使用卷积核来检测图像中的边缘,并且可以检测出图像中的细微变化。OpenCV是一个计算机视觉库,它提供了一系列的函数,可以用来处理图像,包括Sobel算子。OpenCV提供了一系列的函数,可以用来处理图像,包括Sobel算子,但它也提供了其他的图像处理算法,如Canny边缘检测算法,Hough变换算法等。

import cv2
import numpy as np
from numpy import unicode

if __name__ == '__main__':
    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
    scharrx = cv2.Scharr(img, cv2.CV_64F, 1, 0)
    scharry = cv2.Scharr(img, cv2.CV_64F, 0, 1)
    scharrx = cv2.convertScaleAbs(scharrx)
    scharry = cv2.convertScaleAbs(scharry)
    scharrxy = cv2.addWeighted(scharrx, 0.5, scharry, 0.5, 0)

    cv2.imshow("scharrxy", scharrxy)

    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
    cv2.imshow("img", img)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

3 laplacian算子

        Laplacian算子是一种图像处理技术,它可以用来检测图像中的边缘和轮廓。它是一种二阶微分算子,可以用来检测图像中的边缘,并且可以用来检测图像中的噪声。它的基本原理是,它会计算图像中每个像素点的梯度,并且根据梯度的大小来检测图像中的边缘。

import cv2
import numpy as np
from numpy import unicode

if __name__ == '__main__':
    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
    laplacian = cv2.Laplacian(img, cv2.CV_64F)
    laplacian = cv2.convertScaleAbs(laplacian)

    cv2.imshow("laplacian", laplacian)

    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
    cv2.imshow("img", img)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

 

OpenCV 通道分割与合并_双子座断点的博客-CSDN博客_opencv 通道合并

OpenCV ROI截取 、设置、保存_双子座断点的博客-CSDN博客

OpenCV 基础图像处理操作_双子座断点的博客-CSDN博客

OpenCV inRange 函数使用详解_inrange opencv_双子座断点的博客-CSDN博客

OpenCV 图像旋转、平移、缩放_双子座断点的博客-CSDN博客_opencv模板旋转和缩放

OpenCV 图像绘图、线条、文字、矩形_双子座断点的博客-CSDN博客_opencv 绘制线条

OpenCV 图像平滑处理_双子座断点的博客-CSDN博客

OpenCV 图像形态学处理_双子座断点的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双子座断点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值