2012-02-13 100 views
6

我對OCR識別和Python有點新鮮。在Python中識別圖像

我想要實現的是從Python腳本運行Tesseract以「識別」.tif中的某些特定數字。

我想我可以爲Tesseract做一些培訓,但是我沒有在Google上找到任何類似的話題,並且在這裏。

基本上我有一些.tif包含幾個圖像(如'箭頭','花'和其他圖標),我希望腳本輸出該圖標的名稱作爲輸出。如果它找到一個箭頭,然後打印「箭頭」。

可行嗎?

+0

你看過http://code.google.com/p/pytesser/嗎? – 2012-02-13 10:28:51

+0

這是否識別圖像內的圖標或文本?就你所知,有沒有一種培訓方式? – KingBOB 2012-02-13 10:43:24

+0

數字背後是否有背景,其方向,大小或顏色是否改變?我們得到的信息越多越好我們可以提供幫助 – P2bM 2012-02-13 17:22:44

回答

1

這絕不是一個完整的答案,但如果在tif中有多個圖像,並且您事先知道尺寸,則可以在對圖像樣本進行分類之前對其進行標準化。您可以將圖像剪切成tif中所有可能的矩形。

所以,當你創建一個分類器(我沒有提到這裏的方法),最終的結果將採取合成分類所有的小矩形。

所以如果給定一個tif,'箭頭'或'花'圖像是16px x 16px,比方說,您可以使用 Python PIL創建樣本。

from PIL import Image 

image_samples = [] 

im = Image.open("input.tif") 
sample_dimensions = (16,16) 

for box in get_all_corner_combinations(im, sample_dimensions): 

    image_samples.append(im.crop(box)) 


classifier = YourClassifier() 

classifications = [] 

for sample in image_samples: 
    classifications.append (classifier (sample)) 

label = fuse_classifications (classifications) 

再一次,我沒有談及實際寫作YourClassifier的學習步驟。但希望這有助於解決部分問題。

在對圖像進行分類學習以及在對圖像進行分類之前清理圖像中的噪音方面有很多研究。

考慮瀏覽一下現有的Python機器學習庫的好集合。

http://scipy-lectures.github.com/advanced/scikit-learn/index.html

有一些涉及到的圖像,以及許多技術。