Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

TkInter 창에서 웹캠을 표시하는 방법은 무엇입니까?

<시간/>

Python 라이브러리는 독립적이므로 특정 기능을 갖춘 응용 프로그램을 빌드하는 동안 모두 다른 목적으로 사용할 수 있습니다. 이 예제에서는 OpenCV와 Tkinter 라이브러리를 사용하여 애플리케이션을 빌드합니다. OpenCV는 Computer Vision 및 기타 인공 인공물과 함께 작동하는 데 사용되는 Python 라이브러리입니다. OpenCV 모듈을 사용하여 tkinter 창에 웹캠을 표시해야 합니다.

애플리케이션을 만들려면 open-cv를 설치해야 합니다. 로컬 컴퓨터에서 Python Pillow 패키지 사전 설치되어 있습니다. 다음 명령을 입력하여 이러한 패키지를 설치할 수 있습니다.

pip install open-cv
pip install Pillow

설치가 완료되면 애플리케이션의 구조와 GUI 생성을 시작할 수 있습니다. 우리 응용 프로그램의 기본 기능은 OpenCV를 사용하여 웹 카메라(가능한 경우)를 여는 것입니다. 따라서 캡처된 모든 프레임을 표시하려면 프레임을 이미지로 변환하는 PIL(Python Pillow) 패키지를 사용할 수 있습니다. 이미지는 이제 창에 캡처된 모든 프레임을 반복적으로 표시하는 레이블 위젯에서 사용할 수 있습니다.

예시

# Import required Libraries
from tkinter import *
from PIL import Image, ImageTk
import cv2

# Create an instance of TKinter Window or frame
win = Tk()

# Set the size of the window
win.geometry("700x350")

# Create a Label to capture the Video frames
label =Label(win)
label.grid(row=0, column=0)
cap= cv2.VideoCapture(0)

# Define function to show frame
def show_frames():
   # Get the latest frame and convert into Image
   cv2image= cv2.cvtColor(cap.read()[1],cv2.COLOR_BGR2RGB)
   img = Image.fromarray(cv2image)
   # Convert image to PhotoImage
   imgtk = ImageTk.PhotoImage(image = img)
   label.imgtk = imgtk
   label.configure(image=imgtk)
   # Repeat after an interval to capture continiously
   label.after(20, show_frames)

show_frames()
win.mainloop()

출력

위의 코드를 실행할 때마다 웹캠이 켜지고 출력이 tkinter 창에 표시됩니다.

TkInter 창에서 웹캠을 표시하는 방법은 무엇입니까?