gpt4 book ai didi

image - 使用opencv进行Sobel边缘检测

转载 作者:行者123 更新时间:2023-12-02 16:21:15 25 4
gpt4 key购买 nike

我在 openCV 中使用内置的 Sobel 边缘操作来进行某些图像处理,但结果与函数的预期不一样。

sobel=cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
cv2.imshow('Sobel Image',sobel)

我附上了输入图像的样本图像和我得到的结果输出。请帮我解决这个问题。左边是输入图像,右边是结果图像。

enter image description here

最佳答案

您必须进行两个 sobel 操作并将它们混合。另外,请确保您正在处理灰度图像,否则我认为它会单独处理每个 channel ..

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

grad_x = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=3)
grad_y = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=3)

abs_grad_x = cv2.convertScaleAbs(grad_x)
abs_grad_y = cv2.convertScaleAbs(grad_y)

grad = cv2.addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0)

cv2.imshow('grad X',grad_x)
cv2.imshow('grad Y',grad_y)
cv2.imshow('Sobel Image',grad)
cv2.waitKey()

xy 和混合图像的结果是:

enter image description here

如果您需要减少噪点,您可以应用高斯模糊。引用:https://docs.opencv.org/4.2.0/d2/d2c/tutorial_sobel_derivatives.html

关于image - 使用opencv进行Sobel边缘检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com