gpt4 book ai didi

opencv - 计算梯度方向(HOG like)精度差

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:41 24 4
gpt4 key购买 nike

我正在尝试实现一种基于梯度方向匹配的图像匹配算法。主要算法包含以下步骤:

enter image description here

  1. 将图像转换为极坐标:

enter image description here

  1. 使用 sobel 运算符计算梯度:

    Xgrad = cv2.Sobel(gr,cv2.CV_64F,1,0,ksize=5)

enter image description here

Ygrad = cv2.Sobel(gr,cv2.CV_64F,0,1,ksize=3)

enter image description here

3) 计算梯度方向并将其二值化。 :

enter image description here

现在我可以使用最后一个特征图来比较图像,而忽略了旋转和微小的变化。

但我发现,该算法相当纯粹地检测具有旋转的同一图像的旋转。我已经构建了一个带有圆圈的测试图像来测试这个算法:

enter image description here

并将其旋转为 10 个梯度

enter image description here

这里是极坐标转换:

enter image description here

enter image description here

和渐变方向掩码:如您所见,渐变矩阵上已经有很多噪声。它破坏了匹配算法。

enter image description here enter image description here

最好通过差异掩码:整行区域都标记为不匹配。不同步骤上的小高斯模糊根本没有帮助。我不知道为什么。

enter image description here

更新:

梯度计算:

gx = cv2.Sobel(gr,cv2.CV_64F,1,0,ksize=1)
gy = cv2.Sobel(gr,cv2.CV_64F,0,1,ksize=1)
blurredgx = cv2.GaussianBlur(gx,(11,3),1)
blurredgy = cv2.GaussianBlur(gy,(11,3),1)
magnitude, angle = cv2.cartToPolar(blurredgx, blurredgy)

最佳答案

您能否解释一下您是如何计算梯度方向的?我相信您已经将每个 4x4 窗口分组并计算了每个此类窗口内的渐变方向。但是使用的 sobel 运算符的大小为 5x5。这显然会导致一些重叠。你能解释一下吗?

关于opencv - 计算梯度方向(HOG like)精度差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852761/

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