HOG Descriptor Векторный макет и как сохранить их в текстовый файл

0

Я новичок в том, чтобы открыть CV, так что в настоящее время он борется с этим. Я извлек функции HOG, используя следующее определение:

HOGDescriptor hog(Size(16,16), Size(16,16), Size(16,16), Size(8,8), 9);

Он возвращает 36-мерный вектор-объект/пиксель. Теперь я хочу отделить все эти 36 значений в строке и сохранить их в текстовом файле. Я не знаю, как это сделать. Пожалуйста, помогите мне.

Заранее спасибо.

Теги:
opencv

1 ответ

0
Лучший ответ

После того, как вы вычислили функции, то есть descriptors cv::HOGDescriptor::compute, это vector<float>, поэтому просто cv::HOGDescriptor::compute к нему, как обычный vector<float> s.

И если вы хотите, чтобы разделить их на 36 матрицу с размерностью 36 стиль, вы можете сделать так:

for (int i=0; i<descriptors.size()/36; i++)
{
    // ... handle 36 values here
    for (int j=0; j<36; j++)
    {
        if (36*i+j < descriptors.size()) // make sure not out-of-bound
        {
            float temp = descriptors[36*i+j];
            ...
        }
    }   
}
  • 0
    Большое спасибо за ваш ответ. Мне нужно получить первые 36 значений, затем следующие 36 и так далее ... что-нибудь в открытых резюме, как дескрипторы (1:36) (как в Matlab)?
  • 0
    @ user3319734 Я нашел один способ сделать это, проверьте здесь . Или просто используйте for -loop.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню