在这篇文章之后,我正在尝试在 C++ 中实现 SIFTRoot 。
尤其是:
# apply the Hellinger kernel by first L1-normalizing and taking the
# square-root
descs /= (descs.sum(axis=1, keepdims=True) + eps)
descs = np.sqrt(descs)
我的问题是:
- 在 OpenCV 中是否有任何内置的 C++ 函数可以执行此操作?
- 所有描述符的值都是正的吗?否则 L1 范数应该使用每个元素的绝对值。
- 第一行的意思是“对于每个行向量,计算其所有元素的总和,然后添加 eps(为了避免除以 0),最后将每个向量元素除以这个总和值”。