Attributeerror:类型对象图像在tkinter回调中没有打开属性

时间:2017-10-27 12:13:47

标签: python tkinter ocr

这个问题经常被问到,但我的情况不同

我正在开发一个应用程序,它截取一些视频的屏幕截图,执行OCR处理,并在列表视图中向用户显示字幕。
我使用tkinter来显示listview中的文字。每当我运行我的代码时,我都会得到Attributeerror :type object image has no attribute open

我的问题:

在列表视图中显示它是否正确?
还有其他办法吗?
提前谢谢。

这是我的代码:

import sys
import PIL.Image
sys.modules['Image'] = PIL.Image
import Image
import cv2
import pytesseract
import matplotlib.pyplot as plt
import numpy as np
import subprocess
import os
import re
import webbrowser
import requests
#import pyscreenshot as ImageGrab
from PIL import ImageGrab
import threading
from tkinter import *
import tkinter
import lxml
from lxml import etree
a=""
root = Tk()
Lb1 = Listbox(root)

def printit():
  a=""
  im=ImageGrab.grab()
  image=np.array(im)
  image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  crop_position = int(image.shape[0]/4)
  subtitle_img = image[image.shape[0] - crop_position:,:]
  rthresh,thresh = cv2.threshold(subtitle_img, 100,255, cv2.THRESH_BINARY)
  inverted = cv2.bitwise_not(thresh)
  imageFileName = "textImages.png"
  cv2.imwrite(imageFileName,inverted)
  curText = pytesseract.image_to_string(Image.open(imageFileName))
  os.remove(imageFileName)
  return curText
def update_status():

  # Get the current message
  res=printit()
  Lb1.insert(res)
  # After 1 second, update the status
  root.after(1000, update_status)
root.after(1, update_status)
root.mainloop() 

0 个答案:

没有答案