In [5]:
from PythonWrapper.descriptors import Hog
import cv2
import numpy as np

img = cv2.imread("/home/tlorieul/Data/bioid/images/BioID_0000.pgm", cv2.CV_LOAD_IMAGE_GRAYSCALE)

h = Hog()
print h.compute(img[:32,:32])

print "\n"

from _hog import hog
print hog(img[:32,:32], orientations=8, pixels_per_cell=(8,8), cells_per_block=(4,4))

from skimage.feature import hog as original_hog
print original_hog(img[:32,:32].astype(np.float64), orientations=8, pixels_per_cell=(8,8), cells_per_block=(4,4))


<MemoryView of 'ndarray' object>


[ 0.0577704   0.02221435  0.05236135  0.08840181  0.05978523  0.01548377
  0.01132438  0.0251872   0.02060374  0.          0.06167034  0.23434101
  0.10214647  0.00557604  0.00709528  0.00801188  0.02151267  0.00817863
  0.02590145  0.09356954  0.12698593  0.0105306   0.01564862  0.
  0.37255914  0.00555507  0.00709945  0.01303844  0.00706414  0.01344674
  0.00970602  0.0899864   0.08385927  0.01113739  0.00894408  0.00186156
  0.01059621  0.00557604  0.00593639  0.04357479  0.02677712  0.00687767
  0.0163659   0.00242718  0.02001507  0.00951032  0.01192544  0.00428875
  0.01017553  0.01278544  0.02405774  0.02781145  0.01313998  0.01496187
  0.0347152   0.00600337  0.44829876  0.01752872  0.00991169  0.01105289
  0.01431934  0.01428184  0.          0.02070847  0.07054343  0.00850474
  0.01393918  0.00803338  0.03025908  0.00951032  0.02097796  0.02422164
  0.00235471  0.00394897  0.00905284  0.03003653  0.06728642  0.02847113
  0.00797646  0.00186156  0.00117736  0.00212251  0.00131632  0.02234672
  0.08586325  0.02624677  0.03435582  0.03500765  0.4073229   0.02187394
  0.01414415  0.          0.00951438  0.          0.00249755  0.12101529
  0.08496096  0.01477562  0.0339172   0.02489995  0.04454458  0.00950404
  0.00936746  0.00186156  0.00529811  0.00343884  0.00975026  0.0584901
  0.0650261   0.0134593   0.00795013  0.          0.13595719  0.00475516
  0.006904    0.02293384  0.05748424  0.00849846  0.0196684   0.05573272
  0.50155573  0.01163512  0.00333007  0.          0.00598231  0.          0.
  0.13285819]
[  2.78318179e-02   5.68308562e-03   6.80911334e-03   1.08913782e-02
   1.53372607e-02   2.00462968e-03   1.30744975e-03   1.13419888e-02
   2.81459099e-03   1.24035575e-03   6.22042240e-03   4.04922164e-02
   2.52299396e-02   1.08012310e-03   1.44543606e-03   5.84709306e-04
   2.84473724e-03   0.00000000e+00   6.78601757e-03   1.17406934e-02
   2.59448140e-02   3.30761532e-03   4.04965120e-03   1.34707697e-03
   5.35645490e-02   5.25620690e-03   2.50537152e-03  -1.01819723e-17
   3.91293302e-03   3.40060194e-03   2.59023948e-03   2.15982767e-02
   3.28995151e-02   2.32047884e-03   3.44180334e-03   1.16941861e-03
   2.58861844e-03   4.13451915e-04   1.60310300e-03   1.47055651e-02
   4.31274101e-03   3.49358855e-03   4.31114115e-03   1.16941861e-03
   4.25273030e-03   1.24035575e-03   1.98239162e-03   8.21126800e-19
   3.56143922e-03   4.42431540e-03   1.05955114e-02   1.75412792e-03
   2.95842108e-03   2.73393076e-03   3.54306064e-03   1.58043337e-03
   6.03493431e-02   5.05954895e-03   6.67179822e-03   1.16941861e-03
   4.08313189e-03   2.98429709e-03   6.74941866e-04   1.36299817e-02
   3.25087835e-02   2.82691737e-03   5.37933901e-03   5.84709306e-04
   4.67530068e-03   1.65380766e-03   2.50537152e-03   1.30704890e-02
   1.47921054e-03   4.13451915e-04   5.65275419e-03   4.50794371e-03
   1.04738646e-02   2.73393076e-03   4.37823516e-03   0.00000000e+00
   3.89443921e-03   4.13451915e-04   2.59023948e-03   4.04402031e-03
   1.31080078e-02   4.06530071e-03   4.20973182e-03   9.20970790e-03
   5.55047620e-02   5.15761803e-03   5.92295764e-03   1.64225360e-19
   2.77351976e-03   3.28450720e-19   4.44093479e-03   2.17753953e-02
   3.21220120e-02   1.18394611e-03   9.30263058e-03   3.45652160e-03
   4.82574309e-03   1.24035575e-03   1.61137368e-03   1.06820233e-02
   1.84901317e-03   0.00000000e+00   4.51827189e-03   8.45434758e-03
   1.13770564e-02   4.13451915e-04   3.32400467e-03   2.13492968e-18
   3.07334414e-02  -8.21126800e-20   2.69976746e-03   3.05226006e-03
   1.00446819e-02  -8.21126800e-20   6.32244973e-03   1.01213211e-02
   6.68435235e-02   3.97428650e-03   5.28985492e-03   5.84709306e-04
   9.24506587e-04   8.21126800e-20   2.90353717e-03   1.73493881e-02]

In [7]:
h = Hog()

%timeit original_hog(img[:32,:32], orientations=8, pixels_per_cell=(8,8), cells_per_block=(4,4))
%timeit hog(img[:32,:32], orientations=8, pixels_per_cell=(8,8), cells_per_block=(4,4))
%timeit h.compute(img[:32,:32])


100 loops, best of 3: 2.43 ms per loop
100 loops, best of 3: 2.89 ms per loop
10000 loops, best of 3: 60.4 µs per loop

In [ ]: