画面中定位汉字串的外轮廓

我们做的项目需要匹配两张图片,比如机顶盒输出的视频,设置的菜单画面有很多汉字,并不需要认出这些汉字,通过标注汉字串的轮廓,对比两张图片的轮廓位置和大小,就可以判断画面相似度,进而判断当前处于哪个菜单。

那么,如何定位这些汉字串的轮廓呢?

请看原图:

画面中定位汉字串的外轮廓_第1张图片

最容易想到的方法是先使用opencv的findContours()函数找出所有的轮廓,然后再对每个轮廓去找矩形----使用的是boundingRect()函数。但这样找出来的矩形并不能完全覆盖汉字字符串的外部,只能在比较方正的汉字中定位到少数几个矩形框,效果很不理想,而且相当耗费资源,速度慢。

我研究了一个算法,可以快速定位这些汉字串的外轮廓,简述如下:

1、先将图像二值化

2、从上到下,从左到右搜索像素

3、对聚集点进行统计。方块汉字的规律是点和空白差不多,找到聚集区域后,我们可以记住左上和右下的点,构成矩形。

效果如下,轮廓是程序用红色边框标出:

画面中定位汉字串的外轮廓_第2张图片

欢迎探讨。

你可能感兴趣的:(C/C++,实现,opencv,计算机视觉)