Tkinter 和 PIL 在 Python 中相互干扰(Image.open)

时间:2021-05-06 13:00:36

标签: python-3.x image tkinter

请记住,我只是展示了一小部分代码。

在没有导入 Tkinter 的情况下,以下代码有效:

import os
import PIL
from PIL import ImageTk, Image
import cv2
import numpy as np
import pytesseract
import pandas as pd

##CROPS NUMBER PLATE
diretory_save_cut_out_NP = main_folder_directory + '/' + 'Computational directory/NP & VIN/Original NP/'

for x in range(0, file_count):
    im = Image.open(original_file_directory + reg_doc_list_names[0] + '.png')
    x1 = 140
    y1 = 740
    x2 = im.width - 1200
    y2 = im.height - 2470 
    region = im.crop((x1, y1, x2, y2))
    region.save(diretory_save_cut_out_NP + reg_doc_list_names[0] + '.png')
    reg_doc_list_names.pop(0)

但是,如果我导入 Tkinter 并尝试制作 GUI,则会弹出此错误:

import os
import PIL
from PIL import ImageTk, Image
import cv2
import numpy as np
import pytesseract
import pandas as pd
import tkinter as tk
from tkinter import *

    ##CROPS NUMBER PLATE
    diretory_save_cut_out_NP = main_folder_directory + '/' + 'Computational directory/NP & VIN/Original NP/'

    for x in range(0, file_count):
        im = Image.open(original_file_directory + reg_doc_list_names[0] + '.png')
        x1 = 140
        y1 = 740
        x2 = im.width - 1200
        y2 = im.height - 2470 
        region = im.crop((x1, y1, x2, y2))
        region.save(diretory_save_cut_out_NP + reg_doc_list_names[0] + '.png')
        reg_doc_list_names.pop(0)

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\lol\Anaconda3\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "<ipython-input-11-a57cb1712307>", line 35, in scanner
    im = Image.open(original_file_directory + reg_doc_list_names[0] + '.png')
AttributeError: type object 'Image' has no attribute 'open'

我尝试了一些东西,但没有任何效果,你们有什么建议吗?提前致谢,我会尽快回复。

1 个答案:

答案 0 :(得分:0)

代码有效,感谢@acw1668:

##CROPS NUMBER PLATE
diretory_save_cut_out_NP = main_folder_directory + '/' + 'Computational directory/NP & VIN/Original NP/'

for x in range(0, file_count):
    im = PIL.Image.open(original_file_directory + reg_doc_list_names[0] + '.png')
    x1 = 140
    y1 = 740
    x2 = im.width - 1200
    y2 = im.height - 2470 
    region = im.crop((x1, y1, x2, y2))
    region.save(diretory_save_cut_out_NP + reg_doc_list_names[0] + '.png')
    reg_doc_list_names.pop(0)