问题
I am not clear about the difference between the HOG and EOH. Hog is based on image derivatives EOH is based on edge directions. It seems that HOG also somehow a representation of EOH.
Could you please give me some explanation about how EOH differs from HOG and the advantages over EOH compare to HOG. In what circumstances we can use EOH compare to HOG?
回答1:
I think the main difference is that for a HOG, the actual gradient direction is calculated and then binned, where for an EOH the edge orientation is evaluated by searching the maximum response over a set of edge filter kernels. So you could say that HOG does the binning after the gradient computation, where EOH directly calculates the gradient in bins. Depending on the amount of bins you want, one will be faster than the other.
In an EOH, light-dark and dark-light edges are usually treated the same and the orientations are therefore in a range of 0 to pi, where in a HOG the bins usually span a full 2*pi. You can easily make an EOH do this too however.
回答2:
Although, I don't think there is a unique definition of them, and details can vary at many levels (e.g. how to calculated orientations (or orientation gradients)), the key is that the histograms built by the Edge Orientation Histograms only take into consideration the gradient of the pixels that correspond to edges (which in turn are calculated with some other method, e.g. canny
edges), whereas Histograms of Oriented Gradients take into consideration all the gradients of each pixel.
I might be wrong, but that is how I implemented the EOH: http://robertour.com/2012/01/26/edge-orientation-histograms-in-global-and-local-features/
来源:https://stackoverflow.com/questions/11505234/histogram-of-oriented-gradients-vs-edge-orientation-histograms