Существует 59 различных одинаковых LBP для окрестности 8 точек. Это должно быть измерение ваших векторов объектов, но это не потому, что вы использовали itemfreq
для вычисления гистограмм (в качестве примечания: itemfreq
устарело). Длина гистограмм, полученных через itemfreq
, представляет собой количество различных однородных LBP на изображении. Если на изображении отсутствуют какие-либо однородные LBP, количество бинов в полученной гистограмме будет меньше 59. Эту проблему можно легко исправить, используя bincount
, как показано в примере с игрушкой ниже:
import numpy as np
from skimage import feature
from scipy.stats import itemfreq
lbp = np.array([[0, 0, 0, 0],
[1, 1, 1, 1],
[8, 8, 9, 9]])
hi = itemfreq(lbp.ravel())[:, 1] # wrong approach
hb = np.bincount(lbp.ravel(), minlength=59) # proposed method
Вывод выглядит так:
In [815]: hi
Out[815]: array([4, 4, 2, 2], dtype=int64)
In [816]: hb
Out[816]:
array([4, 4, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0], dtype=int64)