在Python中识别图像

6

我对OCR识别和Python都比较新。

我的目标是从Python脚本中运行Tesseract,以便'识别' .tif 中的某些特定数字。

我想我可以为Tesseract做一些训练,但我在Google和SO上没有找到任何类似的主题。

基本上,我有一些包含几个图像(如'箭头'、'花朵'和其他图标)的.tif文件,并且我希望脚本将其名称作为输出打印出来。如果它发现一个箭头就打印'箭头'。

这可行吗?


你看过 http://code.google.com/p/pytesser/ 吗? - Ben Hughes
这个能识别图像中的图标还是只有文本?据你所知,有没有一种训练它的方法? - Giorgio
这些数字背后有什么背景吗?它们的方向、大小或颜色是否会改变?我们获得的信息越多,我们就能提供更好的帮助。 - P2bM
大小、方向和颜色始终相同,但背景可以更改。 - Giorgio
1个回答

1

这绝不是一个完整的答案,但如果tif中有多个图像并且您事先知道大小,则可以在对它们进行分类之前标准化图像样本。您将把图像切成tif中所有可能的矩形。

因此,当您创建分类器(我不在此处提及方法)时,最终结果将合成所有较小矩形的分类。

因此,如果给定一个tif,'arrow'或'flower'图像为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

还有许多与图像相关的技术。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接