在Python中识别图像

6 投票
1 回答
2930 浏览
提问于 2025-04-17 12:57

我对OCR识别和Python都还比较陌生。

我想做的是通过一个Python脚本来运行Tesseract,以便“识别”一个.tif文件中的一些特定图形。

我本以为可以对Tesseract进行一些训练,但在Google和这里的StackOverflow上没有找到类似的话题。

简单来说,我有一些.tif文件,里面包含了好几张图片(比如一个“箭头”、一朵“花”和其他图标),我希望这个脚本能输出这些图标的名称。如果它找到一个箭头,就打印“箭头”。

这样可行吗?

1 个回答

1

这不是一个完整的答案,但如果你的tif文件里有多张图片,并且你提前知道它们的大小,你可以在分类之前先把这些图片标准化。你可以把图片切割成tif文件中所有可能的矩形。

所以当你创建一个分类器的时候(这里不提具体的方法),最终的结果就是对所有小矩形进行分类的综合。

比如说,如果给定的tif文件里,'箭头'或'花朵'的图片是16像素乘16像素的,你可以使用 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

还有很多与图片相关的技术。

撰写回答