畫面中定位漢字串的外輪廓

我們做的項目需要匹配兩張圖片,比如機頂盒輸出的視頻,設置的菜單畫面有很多漢字,並不需要認出這些漢字,通過標註漢字串的輪廓,對比兩張圖片的輪廓位置和大小,就可以判斷畫面相似度,進而判斷當前處於哪個菜單。

那麼,如何定位這些漢字串的輪廓呢?

請看原圖:

機頂盒菜單

最容易想到的方法是先使用opencv的findContours()函數找出所有的輪廓,然後再對每個輪廓去找矩形----使用的是boundingRect()函數。但這樣找出來的矩形並不能完全覆蓋漢字字符串的外部,只能在比較方正的漢字中定位到少數幾個矩形框,效果很不理想,而且相當耗費資源,速度慢。

我研究了一個算法,可以快速定位這些漢字串的外輪廓,簡述如下:

1、先將圖像二值化

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

3、對聚集點進行統計。方塊漢字的規律是點和空白差不多,找到聚集區域後,我們可以記住左上和右下的點,構成矩形。

效果如下,輪廓是程序用紅色邊框標出:

歡迎探討。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章