在Python中识别图像
我对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
还有很多与图片相关的技术。