HOG в OpenCV для классификации целых изображений - PullRequest
1 голос
/ 26 января 2012

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

Однако я хотел бы использовать HOG для построения векторного элемента, который можно использовать для классификации всего изображения. Используя следующее:

std::vector<float> temp_FV_out;
cv::HOGDescriptor hog;
hog.compute(img_in, temp_FV_out);

дает очень длинные векторы объектов, каждый из которых имеет разную длину, из-за разного размера изображения - большие изображения имеют более 64 x 128 окон, и каждое из них влияет на длину вектора объекта.

Как я могу заставить OpenCV выдавать короткий вектор объектов (около 5-20 бинов) для каждого изображения, где длина вектора объектов остается постоянной независимо от размера изображения? Я бы предпочел не использовать пакет слов для создания словаря слов «HOG».

1 Ответ

2 голосов
/ 26 января 2012

Первый шаг - нормализация размера изображения - выберите наименьший размер, который вы хотите обработать, и измените размер остальных до этого базового размера.Вы также можете установить небольшой размер по умолчанию (например, 100x100). Возможно, вам придется обрезать их, если они не имеют одинакового соотношения сторон.

Далее вы можете выбрать количество объектов из вашего векторана основе различных алгоритмов: PCA, деревьев решений, повышения Ada и т. д., которые могут помочь вам извлечь наиболее значимые значения из ваших данных.

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