2014-10-28 127 views
4

給定圖像(即報紙,掃描報紙,雜誌等),如何檢測包含文字的區域?我只需要知道該區域並將其刪除,不需要進行文本識別。如何檢測圖像中的文字區域?

目的是我想刪除這些文本區域,以便它將加快我的特徵提取過程,因爲這些文本區域對我的應用程序沒有意義。有人知道怎麼做嗎?

順便說一句,如果這可以在Matlab中完成將是一件好事!

最好!在自然圖像

enter image description here

+3

能告訴你一個例子形象?文本是否有統一的背景? – 2014-10-28 10:49:37

+0

嗨,我已經上傳了一個示例圖像。有什麼建議麼? – KimLeung 2014-11-06 06:49:21

回答

1

文本檢測是計算機視覺領域研究的活躍領域。 U可以參考ICDAR論文。但在你的情況下,我認爲它應該很簡單。由於你有來自報紙或雜誌的文本,它應該是固定的大小和水平方向。

因此,您可以應用固定大小的掃描窗口,比如32x32。在ICDAR 2003培訓數據集上進行培訓,以獲取正文中包含文字的窗口。 U可以使用顏色和梯度的小特徵集並且訓練SVM,其將對具有文本的窗口給出正面或負面結果。

僅供參考請轉至http://crypto.stanford.edu/~dwu4/ICDAR2011.pdf。對於代碼,你可以嘗試他們的主頁

+0

感謝您的信息!我會盡快嘗試。 – KimLeung 2014-11-06 06:51:13

1

這在Matlab的計算機視覺系統工具箱中的example顯示瞭如何使用MSER區域來檢測文本。

1

如果您的圖像進行了很好的二值化處理,並且您知道文本的常規大小,則可以使用HorizontalRunLengthSmoothingVerticalRunLengthSmoothing算法。它們在開源庫Aforge.Net中實現,但在Matlab中重新實現它們應該很容易。 來自這些算法的結果圖像的交集將爲您提供一個很好的指示,即該區域包含文本,但它不完美,但速度很快。

2

您可以使用Stroke Width Transform (SWT)來突出顯示文本區域。 用我MEX實現貼here,你可以

img = imread('http://i.stack.imgur.com/Eyepc.jpg'); 
[swt swtcc] = SWT(img, 0, 10); 

SWT.m邊緣地圖提取和圖像過濾的內部參數播放可以幫助你調整所產生的面具您的需求。

爲了得到這樣的結果: enter image description here 我用這些參數對於邊緣圖計算在SWT.m

edgeMap = single(edge(img, 'canny', [0.05 0.25]));