Должен ли размер изображения быть одинаковым перед извлечением визуальных объектов с использованием opencv? - PullRequest
0 голосов
/ 09 мая 2019

Я новичок в компьютерном зрении и пытаюсь создать классификатор изображений для классификации изображений из разных наборов данных.Я собираюсь извлечь визуальные особенности этих изображений, такие как гистограмма LBP, цветная гистограмма с использованием OpenCV.Поскольку эти изображения сканируются с разных веб-сайтов, они имеют разный размер изображения (например, 136x215 против 266x382).Должен ли я настроить изображения до того же размера перед извлечением объектов?

Код для извлечения гистограммы LBP:

img_array=cv2.imread(img)
img_gray=cv2.cvtColor(img_array,cv2.COLOR_BGR2GRAY)
lbp=feature.local_binary_pattern(img_gray,8,3,method='uniform')
(hist,_)=np.histogram(lbp.ravel(),bins=np.arange(0,11),range=(0,10))
hist=hist.astype('float')
eps=1e-7
hist/=(hist.sum()+eps)
hist=hist.reshape(1,-1)

Код для извлечения цветовой гистограммы:

image=cv2.imread(img)
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
color_hist=cv2.calcHist([image],[0,1,2],None,[8,8,8],[0, 256, 0, 256, 0, 256])
color_hist=cv2.normalize(color_hist,color_hist).flatten()
color_hist=color_hist.reshape(1,-1)

1 Ответ

0 голосов
/ 10 мая 2019

Краткий ответ: Если вы хотите использовать гистограмму LBP, тогда yes .

На самом деле это зависит от используемого вами дескриптора объекта, так как некоторые полагаются на систему сетки, а другие просто смотрят на распределение всего изображения:

  • Для цветовой гистограммы все будет в порядке, так как вы анализируете распределение цвета, которое не зависит от размера изображения. результирующий вектор объекта должен всегда иметь такие же размеры, как Пока вы используете ту же цветовую модель и тот же размер корзины.
  • При расчете гистограммы LBP вы фактически зависите от размер изображения, так как вы делите изображение на сетку ячеек, которые иметь фиксированный размер пикселя. Каждая клетка даст вам 256-мерный векторный признак При использовании того же размера сетки изображение большего размера будет приведет к большему количеству ячеек, что приведет к большей функции пространство для всего вашего изображения.

Поскольку вы не можете использовать векторы признаков разных измерений для вашей классификации, вам необходимо убедиться, что ваш дескриптор всегда создает вектор одинакового размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...