Разница в дескрипторе hog, рассчитанная на цветные изображения в Python и C ++

Я вычислил HOGDescriptor на цветном изображении и нашел разные результаты в Python и C ++, opencv-версия, параметры HOG и изображение на обоих. Существует разительная разница между дескрипторами HOG, вычисленными на C ++ и Python, по образцу BGR по умолчанию

Первые 100 значений дескриптора BGR HOG в C ++ Первые 100 значений дескриптора BGR HOG в Python

Снова возникает поразительная разница между дескрипторами HOG, вычисленными на C ++ и Python, по умолчанию для изображения BGR2RBG. Однако C ++, по-видимому, следует рекомендуемому (по Далалу, Триггсу) способу вычисления HOG как максимума всех трех каналов, о чем свидетельствует тот факт, что BGR и RGB-образ имеют один и тот же дескриптор HOG, но Python не

Первые 100 значений дескриптора RGB HOG в C ++ Первые 100 значений дескриптора RGB HOG в Python

Тем не менее, в оттенках серого изображения отображаются одинаковые ( но не одинаковые ) значения дескриптора.

Первые 100 значений дескриптора GREY HOG в C ++ и Python

Параметры HOG:

 cv::HOGDescriptor hogDescriptor; hogDescriptor.blockSize = cv::Size(8, 8); hogDescriptor.cellSize = cv::Size(4, 4); hogDescriptor.blockStride = cv::Size(4, 4); hogDescriptor.nbins = 9; hogDescriptor.signedGradient = true; hogDescriptor.winSize = cv::Size(72, 72); 

Мой вопрос: почему существует такая большая разница между реализациями C ++ и Python, хотя Python – всего лишь оболочка для версии C ++?

One Solution collect form web for “Разница в дескрипторе hog, рассчитанная на цветные изображения в Python и C ++”

Я нашел решение для изображений в оттенках серого. Код оболочки Python для дескриптора HOG инициализирует флаг gammaCorrection как False а не True в C ++. Ручная установка флагов как True или False для обоих результатов дает точные значения для C ++ и Python для изображений в оттенках серого. введите описание изображения здесь

Однако проблема связана с цветными изображениями.

введите описание изображения здесь

Лучше всего предположить, что, как и gammaCorrection флага gammaCorrection в gammaCorrection происходит нечто подобное.

  • Opencv: Поезд SVM с быстрыми ключевыми точками и BRIEF функциями
  • Поиск области контура OpenCV
  • Создание набора данных из образа с помощью Python для распознавания лиц
  • OpenCV и Numpy плохо взаимодействуют
  • Как скопировать область изображения с помощью opencv в python?
  • прямоугольник opencv с пунктирными или пунктирными линиями
  • Настройка параметров камеры в OpenCV / Python
  • Открыть видео DivX / XVID в OpenCV Python
  • Python OpenCV: Обнаружение общего направления движения?
  • лазерное изогнутое определение линии с использованием opencv и python
  • Как использовать возвращаемое значение функции как условие while, возвращающее кортеж в python
  • Python - лучший язык программирования в мире.