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).
Для обеих программ выполняются следующие шаги:
Прочитать изображение, используя imread
Преобразовать в оттенки серого, используя cvtColor с COLOR_BGR2GRAY
Выполните выравнивание гистограммы:
a. CLAHE object is created using clipLimit=2.0, tileGridSize - 8x8 b. apply CLAHE on gray image
- Получите высоту и ширину изображения.
Масштабировать изображение до размера 600X800 SVGA
а. если ширина> высота, то масштаб = ширина / 800,0
б. остальное масштаб = высота / 600,0
с. Используйте "изменить размер" с вышеупомянутым коэффициентом масштабирования "масштаб"
- Создать объект MSER
- setDelta(4)
- Вызов обнаружить регионы