标签: opencv image-processing computer-vision contour mser
我正在为图像构建通用文本解析算法。 我在跑:
MSER.detectRegions()
vs
findContours(...cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
在二进制图像上。结果在哪里相同。 我知道MSER可以在灰度级完成,但我想更安全。
我需要选择其中一个,而findContours()只花费运行时间MSER的一半。
findContours()
MSER
我错过了什么吗? 你会选择什么?
答案 0 :(得分:3)
正如已经指出的那样,在二进制图像上计算MSER没有意义。 MSER基本上使用递增(递减)阈值对图像(灰度)进行多次阈值处理,所得到的是所谓的组件树,如here。至少在不同二值化上改变其尺寸/形状的连通分量是最大稳定极值区域(例如,示意图中的K)。这当然是一个非常简化的解释。请向Google询问更多详情,您会找到足够的信息。
正如您所看到的,对已经阈值化的图像进行阈值处理没有意义。因此,将灰度图像传递给MSER算法。 MSER是最先进的文本检测方法的通用基础(请参阅here和here)。