1

我有一个包含 1900 多个 GIF 图像链接条目的 CSV 文件。

每个图像都包含一个电子邮件地址。

我想以编程方式读取每个条目并将它们转换为相应的文本,最好是在另一个或相同的 CSV 文件中。我使用 Mac OS 并且更喜欢使用 Python 或 Java 来完成此任务。

关于如何使用 OCR 或通过任何其他方法进行操作的任何想法?示例代码将不胜感激。

我已经尝试过 tesseract 的示例条目,但结果不准确。这是我尝试过的:

 $ tesseract email.gif out

email.gif看起来像:

greentours2010@yahoo.com

out.txt中生成的输出为:

gveen|L7uvs2fl1fl@yahLm cum

CSV 文件如下所示(前 2 个条目):

这是我在 SO 中的第一个问题。如果我错过了任何其他相关信息,我们深表歉意。我很乐意提供更多。

4

1 回答 1

3

更新的答案

对于tesseract,您的图像相当小而且块状......

在此处输入图像描述

您可能会像这样使用 ImageMagick 更好地放大它们并锐化它们:

convert email.gif -resize 600x -unsharp 0x8 -threshold 95% x.png     # Enlarge and sharpen
tesseract x.png text                                                 # OCR

在此处输入图像描述

结果

tour@chworldtraveI.com

如果您的 CSV 文件看起来像您的示例,并且名为file.csv http://d1hnc0v5nyu4l2.cloudfront.net/kh/communications/original/1417577580/C2AFA720-7A9C-11E4-9201-22000AA51306?1417577580 http://d306v9rz034cgu.cloudfront.net /kh/communications/original/1367212416/55BE4627-B463-4523-8332-4046835D3D79?1367212416

你可能会写

#!/bin/bash
while read f; do
   convert "$f" -resize 600x -unsharp 0x8 -threshold 95% image.png
   tesseract image.png text
   grep "[a-z0-9]" text.txt >> results.txt
done < file.csv

你的文件results.txt将有

sale@myeIitetour.net
cambodia]et@onIine.com.kh

如果您确实打算在 OSX 上使用ImageMagickor tesseract,请考虑使用homebrew. 它会让你的生活更轻松。不知道怎么问的。

原始答案

好吧,这可能是一个开始使用tesseract. 基本上,您将输入图像文件的名称(email.png在我的示例中)和输出文本文件的基础传递给它,如下所示:

tesseract email.png text -psm 7

然后你会在文件中得到一些text.txt像这样的文本

lmAV@chwL7v\d1vave\z:um

您可以尝试各种不同的参数和策略来清理您的输入文件,可能使用 ImageMagick。

由于您没有说明您使用的是什么操作系统,或者您的 CSV 文件是什么样的,因此目前很难再提供任何帮助。

于 2015-04-14T21:31:46.750 回答