OpenCV之Sobel算子

Posted MachineLP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

C++代码:

#i

以上是关于OpenCV之Sobel算子的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV之Sobel算子

opencv入门之九Opencv边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器

《OpenCV:Sobel算子理论与OpenCV代码实现》

OpenCV中不用库函数实现sobel算子

OpenCV入门系列4:图像梯度常用算子——Sobel,Scharr和Laplacian算子

OpenCV 图像梯度算子