Python 拍摄一张屏幕截图,并在上面使用OCR
我知道Python的OCR问题已经讨论过很多次了。 然而,我并没有找到任何能帮助我回避这个问题的东西 . 但这并没有解决我的问题 我需要制作一个小脚本来捕获打开的窗口(文本编辑器)中的文本 因此,它应该:Python 拍摄一张屏幕截图,并在上面使用OCR,python,ocr,tesseract,Python,Ocr,Tesseract,我知道Python的OCR问题已经讨论过很多次了。 然而,我并没有找到任何能帮助我回避这个问题的东西 . 但这并没有解决我的问题 我需要制作一个小脚本来捕获打开的窗口(文本编辑器)中的文本 因此,它应该: 截图 找到文本编辑器窗口的位置并切分屏幕截图(不知道是否需要这篇文章) 将其转换为灰度并传递给tesseract 我是Python的新手,我不知道这是否可行 不过,请提前感谢您的任何提示 乔治这当然是可能的,但通常也是不合理的。有更好的办法。假设您正在解析网页,您可以在不通过OCR运行的情况下
乔治这当然是可能的,但通常也是不合理的。有更好的办法。假设您正在解析网页,您可以在不通过OCR运行的情况下获取HTML文本,或者如果您想读取图像的文本,您可以使用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."
这是取自的,但您已经有了文本!它就在文本编辑器中!你到底为什么要花这么多的时间来获取你已经拥有的文本呢?这是一个例子,它可能是一个文本编辑器或另一个程序,我的意思是我有整洁的文本。如果有人想拍摄选定区域的屏幕截图呢?我的意思是通过点击和拖动鼠标光标来选择某个特定区域。如果你的平台支持Bash,你可以试试(在Ubuntu和OSX上测试过,尽管有时有点小故障)。我承认我喜欢一个可以在所有平台上使用的Python脚本(或者至少是一个主要是Python的脚本,只需将区域选择委托给特定于操作系统的命令)。