2009-10-25 63 views
1

我想知道是否有人會給我指向圖像rec包,這將幫助我識別「文本」(而不是OCR,只是看起來像文本)和黑框框架。所以,假設:圖像識別:一個框和隨機放置的文本

text 
+----------+ 
|   | 
| text1 | 
|   | 
|   | 
+----------+ 
    text 

如何識別「文本」框是文本,並且說text1是在框內?

道歉的模糊的問題......我不知道從哪裏開始。這不是家庭作業,順便說一句。

+0

您是從一個Windows應用程序的屏幕截圖開始的,並且您正在嘗試識別文本框和文本框中的文本? – MusiGenesis 2009-10-25 15:10:34

+0

不,更簡單...我有一個盒子和一個gif文件中的文本。我需要認識(如果有的話)一個盒子和隨機文本。 – 2009-10-25 15:12:34

+0

@Dervin所以會有一些ASCII(http://users.physik.fu-berlin.de/~goerz/blog/wp-content/uploads/2008/09/ascii.gif)是一個很好的例子嗎?因爲如果是這樣,這不是微不足道的 – 2009-10-25 15:41:58

回答

2

[這是我們感興趣的。]我假設你的輸入實際上是一個位圖 - 一個矩形的像素矩陣。第一個問題是它是否與軸線對齊 - 如果它被掃描過,它可能不是。儘管我們目前的合作者對於簡單的盒子和項目像素在不同的視點上做的比這個更好 - 類似的,但是經典的線條檢測是霍夫變換(http://en.wikipedia.org/wiki/Hough_transform) - 類似的到斷層掃描。旋轉圖像並計算投影線上點的密度/直方圖。對於提供清晰信號的簡單盒子。

對於文本我懷疑你要麼有一套可能的字體或使用機器學習。在後者中,您必須設計功能,然後選擇一系列由人類分類爲圖像而非文本的圖像。然後訓練你的算法(並且有許多神經網絡,最大熵等),然後訓練這些算法。

像素圖的質量有很大的不同。 20年前的文檔,比通過繪圖程序創建的文檔的位圖要難得多,並且傾倒爲PDF(當然,如果您可以解釋PDF中的文本,這對文檔有很大的幫助)。

+0

我的文檔很簡單...它們是gif圖像,所以它們很乾淨。 – 2009-10-25 15:13:20

+0

@Dervin GIF只是像素的傳輸格式。他們可以持有非常混亂的文本(例如SO中的驗證碼)或相當乾淨的文本 - 例如SO本身的字體。但是當詳細分析時,許多圖像並不乾淨,因爲它們可能包含抗鋸齒 – 2009-10-25 15:32:13

+0

彼得,圖像會更接近此:http://images.freshmeat.net/editorials/r_intro/images/line-graph-1.jpg – 2009-10-25 15:48:55

1

您可以應用任何邊界檢測算法來檢測框。並且由於文本的顏色與背景的顏色不同,您甚至可以使用線性搜索來查找「文本」的黑色像素。我可能是錯的,對此感到遺憾。

0

一個非常簡單的算法將掃描left-to - 右上角,從上到下尋找構成盒子左上角的三個黑色像素(然後繼續掃描構成匹配右下角的三個像素)。一旦以這種方式識別了圖像中的每個方框,就可以掃描內部部分,並假定任何非白色像素表示方框中有一些文本。當然,這並不能區分文本框和圖像內的圖像,但這無疑會是一個更加困難的問題。

+0

對於我這個天真的問題感到抱歉,但是如果在你的文檔中你有一個小y座標的T,會發生什麼?難道不會和左角混淆? – 2009-10-25 15:38:47

+0

你不能假設正好有3個像素 - 這取決於線寬,光柵化程序的註冊,反鋸齒等等。 – 2009-10-25 16:17:34

+0

@Dervin:你可以通過檢查左邊的像素來排除一個「T」,你可以通過檢查左邊和上邊來排除一個「+」,但是所有這些都假設了一個相對簡單的圖像。我的算法對於您在peter的評論下發布的示例圖片來說效果不佳。它不會拾起圖表框右下角,它會錯誤地將「5」的左上角和「DJIA」中的橫向「D」識別爲拐角等。 – MusiGenesis 2009-10-25 18:19:54