专栏首页小鹏的专栏OpenCV之Sobel算子

OpenCV之Sobel算子

python代码:

import cv2 as cv
import numpy as np

src = cv.imread("./test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

h, w = src.shape[:2]
x_grad = cv.Sobel(src, cv.CV_32F, 1, 0)
y_grad = cv.Sobel(src, cv.CV_32F, 0, 1)

x_grad = cv.convertScaleAbs(x_grad)
y_grad = cv.convertScaleAbs(y_grad)
# cv.imshow("x_grad", x_grad)
# cv.imshow("y_grad", y_grad)

dst = cv.add(x_grad, y_grad, dtype=cv.CV_16S)
dst = cv.convertScaleAbs(dst)
cv.imshow("gradient", dst)

result = np.zeros([h, w*2, 3], dtype=src.dtype)
result[0:h,0:w,:] = src
result[0:h,w:2*w,:] = dst
cv.imshow("result", result)
cv.imwrite("./result.png", dst)

cv.waitKey(0)
cv.destroyAllWindows()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OpenCV 边缘检测

    Canny 边缘检测算子,其算法步骤大体如下: 1) 用高斯滤波器对输入图像做平滑处理 (大小为 5x5 的高斯核)

    AI异构
  • 【从零学习OpenCV 4】Sobel算子

    Sobel算子是通过离散微分方法求取图像边缘的边缘检测算子,其求取边缘的思想原理与我们前文介绍的思想一致,除此之外Sobel算子还结合了高斯平滑滤波的思想,将边...

    小白学视觉
  • CV学习笔记(十三):图像梯度

    在高等数学中我们了解到梯度不是一个实数,他是一个向量,是有方向有大小的。现在以一个二元函数来举例,假设一二元函数f(x,y),在某点的梯度有:

    云时之间
  • [图像处理] Python+OpenCV实现车牌区域识别

    这里原理推荐我以前C++图像处理的文章,如下:https://blog.csdn.net/column/details/eastmount-mfc.html

    统计学家
  • 干货 | OpenCV实现边缘模板匹配算法

    OpenCV中自带的模板匹配算法,完全是像素基本的模板匹配,特别容易受到光照影响,光照稍微有所不同,该方法就会歇菜了!搞得很多OpenCV初学者刚学习到该方法时...

    小白学视觉
  • C++ OpenCV自定义线性滤波

    把kernel放到像素数组之上,求锚点周围覆盖的像素乘机之和(包括锚点),用来替换覆盖点下的像素点值称为卷积处理

    Vaccae
  • OpenCV学习+常用函数记录②:图像卷积与滤波

    Sobel算子是像素图像边缘检测 中最重要的算子之一,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。

    小黑鸭
  • 基于OpenCV的图像梯度与边缘检测!

    严格的说,梯度计算需要求导数。但是图像梯度的计算,是通过计算像素值的差得到梯度的近似值。图像梯度表示的是图像变化的速度,反映了图像的边缘信息。

    Datawhale
  • C++ OpenCV特征提取之自定义角点检测器(一)

    我们在前面学习了《C++ OpenCV特征提取之Harris角点检测》和《C++ OpenCV特征提取之Shi-Tomasi角点检测》,今天我们再来学习一下自定...

    Vaccae
  • Task06 边缘检测

    如上图所示,上图的第一幅图表示一张数字图片,我们对水平红线处进行求导,便可得到上图二中的关系,可以看到在边缘处有着较大的跳变。但是,导数也会受到噪声的影响,因此...

    致Great
  • 干货 | OpenCV实现边缘模板匹配算法

    OpenCV中自带的模板匹配算法,完全是像素基本的模板匹配,特别容易受到光照影响,光照稍微有所不同,该方法就会歇菜了!搞得很多OpenCV初学者刚学习到该方法时...

    OpenCV学堂
  • 【从零学习OpenCV 4】Scharr算子

    虽然Sobel算子可以有效的提取图像边缘,但是对图像中较弱的边缘提取效果较差。因此为了能够有效的提取出较弱的边缘,需要将像素值间的差距增大,因此引入Scharr...

    小白学视觉
  • 【python-opencv】图像梯度

    OpenCV提供三种类型的梯度滤波器或高通滤波器,即Sobel,Scharr和Laplacian。我们将看到他们每一种。

    西西嘛呦
  • 【算法随记一】Canny边缘检测算法实现和优化分析。

      以前的博文大部分都写的非常详细,有很多分析过程,不过写起来确实很累人,一般一篇好的文章要整理个三四天,但是,时间越来越紧张,后续的一些算法可能就以随记的方式...

    用户1138785
  • FPGA图像处理之边缘检测算法的实现

    边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深...

    FPGA开源工作室
  • CV学习笔记(十四):边缘检测

    在这一篇文章里我们将去学习在计算机视觉中边缘检测的知识,并且去使用OpenCV来实现Canny边缘检测算法。

    云时之间
  • opencv+Recorder︱OpenCV 中的 Canny 边界检测+轮廓、拉普拉斯变换

    图像边缘检测能够大幅减少数据量,在保留重要的结构属性的同时,剔除弱相关信息。 在深度学习出现之前,传统的Sobel滤波器,Canny检测器具有广泛的应用,但...

    素质
  • 图形图像算法中必须要了解的设计模式(3)

    随着信息的多元化,信息的概念不仅仅指的是文字,它还包含图片、声音、视频等其它丰富的信息。文字信息越来越多地被图片、声音、视频信息所替代,而视频又是由一针一针的图...

    OpenCV学堂
  • 基于阈值的车道标记

    在这篇文章中,我将介绍如何从视频中查找并标记车道。被标记的车道会显示到视频上,并得到当前路面的曲率以及车辆在该车道内的位置。首先我们需要对图像进行相机失真校正,...

    AI算法与图像处理

扫码关注云+社区

领取腾讯云代金券