Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 拍摄一张屏幕截图,并在上面使用OCR_Python_Ocr_Tesseract - Fatal编程技术网

Python 拍摄一张屏幕截图,并在上面使用OCR

Python 拍摄一张屏幕截图,并在上面使用OCR,python,ocr,tesseract,Python,Ocr,Tesseract,我知道Python的OCR问题已经讨论过很多次了。 然而,我并没有找到任何能帮助我回避这个问题的东西 . 但这并没有解决我的问题 我需要制作一个小脚本来捕获打开的窗口(文本编辑器)中的文本 因此,它应该: 截图 找到文本编辑器窗口的位置并切分屏幕截图(不知道是否需要这篇文章) 将其转换为灰度并传递给tesseract 我是Python的新手,我不知道这是否可行 不过,请提前感谢您的任何提示 乔治这当然是可能的,但通常也是不合理的。有更好的办法。假设您正在解析网页,您可以在不通过OCR运行的情况下

我知道Python的OCR问题已经讨论过很多次了。 然而,我并没有找到任何能帮助我回避这个问题的东西 . 但这并没有解决我的问题

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

因此,它应该:

  • 截图
  • 找到文本编辑器窗口的位置并切分屏幕截图(不知道是否需要这篇文章)
  • 将其转换为灰度并传递给tesseract
  • 我是Python的新手,我不知道这是否可行

    不过,请提前感谢您的任何提示


    乔治

    这当然是可能的,但通常也是不合理的。有更好的办法。假设您正在解析网页,您可以在不通过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的脚本,只需将区域选择委托给特定于操作系统的命令)。