簡體   English   中英

如何檢測圖像中的文本區域?

[英]How to detect text region in image?

給定圖像(即報紙、掃描的報紙、雜志等),如何檢測包含文本的區域? 我只需要知道區域並刪除它,不需要做文本識別。

目的是我想刪除這些文本區域,以便加快我的特征提取過程,因為這些文本區域對我的應用程序毫無意義。 有人知道怎么做嗎?

順便說一句,如果這可以在 Matlab 中完成就好了!

最好的事物!

在此處輸入圖片說明

您可以使用描邊寬度變換 (SWT)來突出顯示文本區域。 使用我在這里發布的 mex 實現,您可以

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

SWT.m中使用邊緣圖提取和圖像過濾的內部參數可以幫助您根據需要調整生成的掩碼。

要得到這個結果:在此處輸入圖片說明 我將這些參數用於SWT.m的邊緣圖計算:

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

自然圖像中的文本檢測是計算機視覺社區的一個活躍研究領域。 你可以參考ICDAR論文。 但在你的情況下,我認為它應該足夠簡單。 由於您有來自報紙或雜志的文本,它應該是固定大小和水平方向的。

因此,您可以應用固定大小的掃描窗口,例如 32x32。 在 ICDAR 2003 訓練數據集上訓練它,用於包含文本的正窗口。 你可以使用一個小的顏色和漸變特征集,並訓練一個 SVM,這將給出一個窗口是否有文本的正面或負面結果。

如需參考,請訪問http://crypto.stanford.edu/~dwu4/ICDAR2011.pdf 對於代碼,您可以嘗試他們的主頁

Matlab 中計算機視覺系統工具箱中的這個示例展示了如何使用 MSER 區域檢測文本。

如果您的圖像二值化良好並且您知道文本的通常大小,則可以使用Horizo​​ntalRunLengthSmoothingVerticalRunLengthSmoothing算法。 它們在開源庫Aforge.Net中實現,但在 Matlab 中重新實現它們應該很容易。 這些算法的結果圖像的交集將很好地表明該區域包含文本,它並不完美,但速度很快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM