window 用于显示摄像头画面的 GUI 出错

Error in window GUI for displaying camera feed

我正在编写一个 window 图形用户界面来显示来自我的相机的提要。 但是,我一直收到此错误。

**stream
    im_pil = Image.fromarray(im_rgb)
NameError: name 'Image' is not defined

我尝试导入图片,但没有用。有谁知道出了什么问题? 这是我的代码:

import tkinter as tk
import cv2
from PIL import Image



window = tk.Tk()
window.title('Video Stream')

main = tk.Frame(window, bg="white")
main.grid()
video = tk.Label(main)
video.grid()
window.bind('<Escape>', lambda event: window.destroy())

status, frame = 0, []
cap = cv2.VideoCapture(0)

def stream():
   global status, frame
   status, frame = cap.read()
   # 如果有影像的話
   if status:
       # 將 OpenCV 色改格式 ( BGR ) 轉換成 RGB
       im_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
       # 將 OpenCV 圖檔轉換成 PIL
       im_pil = Image.fromarray(im_rgb)
       # 轉換成 ImageTK
       imgTK = ImageTk.PhotoImage(image=im_pil)
       # 放入圖片
       video.configure(image=imgTK)
       # 防止圖片丟失,做二次確認
       video.image = imgTK
   # 10 豪秒 後執行 stream 函式,這裡是模擬 While 迴圈的部分
   window.after(10, stream)

stream()
window.mainloop()
cap.release()
cv2.destroyAllWindows()

按如下方式更改有问题的行:

imgTK = ImageTk.PhotoImage(im_pil)