2012-02-13 104 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

有一些涉及到的图像,以及许多技术。