如何修复python中的namererror

2024-06-25 07:11:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我也尝试把面板A和面板B两个窗口,但我得到以下错误

if PanelA is None or PanelB if None: NameError: name 'panelA' is not defined

from tkinter import *
from PIL import Image, ImageTk
from tkinter import filedialog
import cv2

def select_image():
        global panelA, panelB
        path = filedialog.askopenfilename()
        if len(path) > 0:
                image = cv2.imread(path)
                gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
                edged = cv2.Canny(gray, 50, 100)
                image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
                image = Image.fromarray(image)
                edged = Image.fromarray(edged)
                image = ImageTk.PhotoImage(image)
                edged = ImageTk.PhotoImage(edged)    
        if panelA is None or panelB is None:
                panelA = Label(image=image)
                panelA.image = image
                panelA.pack(side="left", padx=10, pady=10)
                panelB = Label(image=edged)
                panelB.image = edged
                panelB.pack(side="right", padx=10, pady=10)
        else:
                panelA.configure(image=image)
                panelB.configure(image=edged)
                panelA.image = image
                panelB.image = edged
root = Tk()
panelA = None
panelB = None

btn = Button(root, text="Select an image", command=select_image)
btn.pack(side="bottom", fill="both", expand="yes", padx="10", pady="10")

root.mainloop()

Tags: pathfromimageimportnoneifiscv2