我有一个应用程序需要检查相机的焦点。为此,我想在单个轴 (1D) 上的几个预定义位置测量边缘强度(梯度幅度)。图像目标将是白色背景上黑色对象的简单打印输出。
我正在将 OpenCV 与 Python 结合使用。我知道 OpenCV 中有几种边缘检测算法,如 Canny、Sobel、laplace,但所有这些都是为了过滤图像。我想实际测量边缘的强度。 OpenCV 中是否有任何算法可以提供此功能?还是我只编写自己的算法来测量边缘强度?
最佳答案
这是一个 Python 版本:
def getGradientMagnitude(im):
"Get magnitude of gradient for given image"
ddepth = cv2.CV_32F
dx = cv2.Sobel(im, ddepth, 1, 0)
dy = cv2.Sobel(im, ddepth, 0, 1)
dxabs = cv2.convertScaleAbs(dx)
dyabs = cv2.convertScaleAbs(dy)
mag = cv2.addWeighted(dxabs, 0.5, dyabs, 0.5, 0)
return mag
mag = getGradientMagnitude(im)
关于python - 在 OpenCV 中测量边缘强度,梯度大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33679738/