【发布时间】:2018-06-24 21:03:16
【问题描述】:
我是图像处理的初学者。我有一些关于 HOG 的问题。
https://www.learnopencv.com/histogram-of-oriented-gradients/
从这个网站上,它提到 HOG 描述符中的每个元素将除以块中所有元素的总和。但是,如果重叠块,如何进行块归一化?我不明白,因为向量中的某些元素将是多个块的元素。
Picture of block normalization
例如,如果我们有一个直方图 [v11 v12 v13 v14...v19] ,[v21 v22 v23 v24...v29], [v31 v32 v33 v34 v35...v39] 和 [v41 v42 v43 v44 ..v49] 在红色块中,我们可以像这样对第一个向量的第一个元素进行归一化:v11/(v11+v12+...+v21+v22+v23+..+v31+v32+...+v41+v42 ...+v49)
但是,如何对红色块和黄色块中的向量进行归一化呢?
非常感谢。
【问题讨论】:
-
有什么问题?也许,你是否试图规范化每个块 in-place 并意识到这不适用于重叠块?只需将结果存储在每个块的 不同 向量中...否则,您能更好地解释您不理解的内容吗?
-
是的,你规范化了块的副本。
-
感谢您的回复。我已经编辑了我的问题。我希望它可以帮助。
-
对于每个 8x8 像素块,您都有一个 9x1 向量;通过水平(然后垂直)一次步进 8 个像素,对于每个 16x16 块,您有四个 9x1 = 一个 36x1 向量; this 向量 = [v1,..,v36] 应该按照 L2 范数进行归一化,即 [v1/sqrt(v1^2+v2^2+...+v36^2), ...]
-
重叠块怎么样?如果我们重叠块如何规范化它们?
标签: python c++ image-processing