Разница в дескрипторе 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 происходит нечто подобное.

  • захват кадра NTSCtoUSB ключ, opencv2, оболочка python
  • Как объединить OpenCV с PyQt для создания простого графического интерфейса?
  • cv2.imread всегда возвращает NoneType
  • Объединение двух изображений с OpenCV
  • Размер изображения (Python, OpenCV)
  • Как работает QueryFrame?
  • Не удается открыть видеофайлы «.mp4» с использованием OpenCV 2.4.3, Python 2.7 на компьютере под управлением Windows 7
  • Обнаружение цели OpenCV dot не обнаруживает все цели, и найденные круги смещены
  • Python - лучший язык программирования в мире.