我正在将Python程序移植到C ++,它使用MSER(OpenCV)detectRegions。我注意到奇怪的行为,C ++程序检测到的MSER区域数量明显低于Python程序。在调用detectRegions之前,我使用相同的图像作为它们的输入并执行相同的预处理步骤。对于特定的示例图像,Python程序检测到的MSER区域数为6620,但在移植到C ++之后,我只获得了1164个。
唯一不同的是,对于Python,我使用x64版本的cv2.pyd(\ build \ python \ 2.7 \ x64),而对于C ++,我使用的是x86(\ build \ x86 \ vc12)。
对于这两个程序,执行以下步骤:
使用imread
使用带有COLOR_BGR2GRAY的cvtColor转换为灰度
执行直方图均衡:
a. CLAHE object is created using clipLimit=2.0, tileGridSize - 8x8
b. apply CLAHE on gray image
将图像缩放到600X800 SVGA尺寸
一个。如果宽度>高度然后比例=宽度/ 800.0
湾else scale = height / 600.0
℃。使用'resize'和上面的比例因子'scale'