OpenCV MSER обнаруживает регионы C ++ Vs. питон

Я портирую программу на Python на C ++, которая использует MSER (OpenCV) DeteRegions. Я замечаю странное поведение в том, что количество областей MSER, обнаруженных программой на C ++, значительно меньше, чем в Python. Я использую одно и то же изображение в качестве входных данных для обоих и выполняю идентичные шаги предварительной обработки перед вызовом detectRegions. Для конкретного примера изображения, количество областей MSER, обнаруженных программой Python, было 6620, но после переноса на C ++ я получаю только 1164.

Единственное отличие в моем конце состоит в том, что для Python я использую x64-версию cv2.pyd (\ build \ python \ 2.7 \ x64), а для C ++ я использую x86 (\ build \ x86 \ vc12).

Для обеих программ выполняются следующие шаги:

  1. Прочитать изображение, используя imread

  2. Преобразовать в оттенки серого, используя cvtColor с COLOR_BGR2GRAY

  3. Выполните выравнивание гистограммы:

    a. CLAHE object is created using clipLimit=2.0, tileGridSize - 8x8
    
    b. apply CLAHE on gray image
    
  4. Получите высоту и ширину изображения.
  5. Масштабировать изображение до размера 600X800 SVGA

    а. если ширина> высота, то масштаб = ширина / 800,0

    б. остальное масштаб = высота / 600,0

    с. Используйте «изменить размер» с вышеупомянутым коэффициентом масштабирования «масштаб»

  6. Создать объект MSER
  7. setDelta (4)
  8. Вызов обнаружить регионы

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]