2015-09-11 93 views
1

我正在使用C#編寫OCR項目。我正在考慮將文本圖像分割成線條,曲線,循環等基本組件,並找到它們的方向,以便我可以將它們用於特徵提取和識別。如何將文本圖像分段爲線條和曲線等基本組件?

任何人都可以幫助我如何實現這一目標?例如:如果我的文字圖像的字母'A',那麼它必須分成三個基本組件'/',' - '和'\'。

+0

您可以手動創建的所有可能的*成分* A *模板*,那麼,對於一個給定的圖像,你可以使用[模板匹配(http://docs.opencv.org /doc/tutorials/imgproc/histograms/template_matching/template_matching.html)(或者只是簡單的相關性,因爲你的圖像看起來很簡單)匹配所有可能的模板,然後以最高的概率/相關性過濾組合。 –

回答

0

處理這種問題(數字或字符識別)有多種方法,如各種尺度上的模板匹配(主要是遞減尺度),基於特徵的方法(如HOG特徵),這些特徵被廣泛用於數字和字符識別。

現在回答你的問題,有一些方法來檢測圖像中的線條和曲線。

最簡單的計算策略:

如果你有閾值的圖像(即,二值圖像),只進行圖像打開操作具有不同取向像水平線分割水平線,垂直垂直線線路結構元件如果您熟悉MATLAB,您可以使用「strel()」函數創建具有不同方向和長度的不同線結構,只需在適當長度的線上應用「imopen」操作(根據你的角色大小)。 你必須做一些命中並嘗試線的長度和方向。

稍用力方式

但非常有用的方法是應用霍夫變換比你可以檢測到任何類型的線路和自定義曲線但對於這個你必須做小小的努力。 下面是其遵循了同樣的做法試卷一些鏈接: http://www.cse.unr.edu/~bebis/CS474/Handouts/HoughTransformPaper.pdf http://homepages.inf.ed.ac.uk/rbf/BOOKS/BANDB/LIB/bandb4_3.pdf

哈德路

使用一些基於特徵的技術,如HOG,這是基於梯度閱讀取向試試監督方法有關它的東西,它可能會幫助你。

所有最優秀的

+0

我的努力是針對omnifont(獨立於字體的)光學字符識別系統。字符集本身很大(梵文字符集包括連詞)。這裏[鏈接](http://arxiv.org/pdf/1202.3884.pdf)是我經歷的論文。我不熟悉** MATLAB **。在C#中有沒有替代**的MATLAB **庫? –

+0

嗨Niranjan,我剛剛通過你提到的鏈接,文中提出的方法是非常有說服力的基本水平的字符識別,但是因爲你有大量數據集,那麼我認爲它也會有很多變化對應於結構,更強大的方法來嘗試這些類型的問題是基於特徵的方法,正如我前面討論過的,我已經使用HOG特徵做了一個數字分類器,並且它是一次成功的嘗試,在OpenCV中您可以找到一個用於HOG特徵搜索的庫爲此,或者如果你知道它的理論或原則,你可以實施它。 –

+0

另一種方式就像我已經討論過的圖像打開操作一樣,它不是MATLAB的依賴操作,基本上它是在侵蝕操作之後膨脹的。我也使用這種方法進行字符集的垂直和水平線檢測。只是應用圖像打開與例如3X3的面具如中心列有1和所有其他元素爲0和第一侵蝕二進制圖像,並擴大它;這會給你所有的字符垂直線,同樣你可以嘗試水平和對角線元素,根據字符大小選擇掩碼大小,我想你可以試試這個。 –