截取屏幕截图并使用OCR

时间:2012-02-10 17:10:32

标签: python ocr tesseract

我知道Python的OCR问题已经多次讨论过了。 但是我没有找到任何似乎可以帮助我解决这个问题的东西 Python Tesseract OCR question。 但它并没有解决我的问题。

我需要制作一个小脚本来捕获打开的窗口(文本编辑器)中的文本。

所以它应该:

  1. 截取屏幕截图
  2. 找到文本编辑器窗口的位置并切片截屏(如果需要此段落,则为dunno)
  3. 将其转换为灰度并将其传递给tesseract
  4. 我是Python的新手,如果可行,我不知道。

    然而,事先感谢任何提示。

    乔治

1 个答案:

答案 0 :(得分:2)

这当然是可能的,但一般来说,也是不合理的。有更好的方法。假设您正在解析网页,您可以抓取HTML文本而不通过OCR运行它,或者如果您想要读取图像文本,您可以使用urllib2解析HTML,选择图像并直接下载图像到一个文件。 Python中有许多HTML解析器替代品,您也可以使用它们。使用PIL或ImageMagick,灰度很简单。从那里,您可以通过OCR运行它,或者使用Python包装器(如python-tesseract)在脚本中执行它。

或者 - 如果你坚持做截图,这样的事情对你有用。我仍然认为几乎总有更好的方法,但是如果你想尝试一下,这应该让你开始。

import gtk.gdk

w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "The size of the window is %d x %d" % sz
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):
    pb.save("screenshot.png","png")
    print "Screenshot saved to screenshot.png."
else:
    print "Unable to get the screenshot."

这取自Take a screenshot via a python script. [Linux]