Csv 如何以编程方式读取图像中的电子邮件并将其转换为文本?

Csv 如何以编程方式读取图像中的电子邮件并将其转换为文本?,csv,image-processing,ocr,tesseract,python-tesseract,Csv,Image Processing,Ocr,Tesseract,Python Tesseract,我有一个CSV文件,包含1900多个GIF图像链接条目 每个图像包含一个电子邮件地址 我希望通过编程读取每个条目,并将它们转换为相应的文本,最好是在另一个或同一个CSV文件中。我使用MacOS,更喜欢使用Python或Java来实现这一点 有没有关于如何使用OCR或通过任何其他方法来实现的想法?如能提供示例代码,将不胜感激 我尝试了tesseract的示例条目,但结果不准确。以下是我尝试过的: $ tesseract email.gif out email.gif看起来像: greentou

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

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

我希望通过编程读取每个条目,并将它们转换为相应的文本,最好是在另一个或同一个CSV文件中。我使用MacOS,更喜欢使用Python或Java来实现这一点

有没有关于如何使用OCR或通过任何其他方法来实现的想法?如能提供示例代码,将不胜感激

我尝试了tesseract的示例条目,但结果不准确。以下是我尝试过的:

 $ tesseract email.gif out
email.gif看起来像:

greentours2010@yahoo.com
在out.txt中生成的输出为:

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


这是我在SO中的第一个问题。如果我遗漏了任何其他相关信息,请道歉。我很乐意提供更多

更新答案

您的图像对于tesseract来说非常小且块状

使用ImageMagick可以更好地放大和锐化它们,如下所示:

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

结果

tour@chworldtraveI.com
如果您的CSV文件看起来像您的示例,并且名为
file.CSV

你可以写信

#!/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

如果您确实打算在OSX上使用<代码> IMAGEMAGE/<代码>或<代码> TestSerAs>代码>,请考虑用<代码> HOBRUW< <代码>安装它。这会让你的生活更轻松。如果你不知道怎么做,就问吧

原始答案

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

convert email.gif -resize 600x -unsharp 0x8 -threshold 95% x.png     # Enlarge and sharpen
tesseract x.png text                                                 # OCR
tesseract email.png text -psm 7
然后您将在文件
text.txt
中获得一些文本,如下所示

lmAV@chwL7v\d1vave\z:um
您可以尝试各种不同的参数和策略来清理输入文件,可能是使用ImageMagick


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

到目前为止您尝试了什么,到目前为止您的结果是什么?所有图像的字体和字号是否相同?您对CSV格式感兴趣的问题是什么?您想使用python吗?这是一个有点多,要求人们给你一个电子邮件刮板没有提供任何示例代码。我不是-1.URL未找到404错误如何在Windows环境中执行?