Я портирую программу на 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
с. Используйте «изменить размер» с вышеупомянутым коэффициентом масштабирования «масштаб»
Задача ещё не решена.
Других решений пока нет …