opencv tkinter在frame里展示图片
时间: 2023-06-18 21:03:49 浏览: 137
可以使用以下代码将 OpenCV 中的图像展示在 Tkinter 中的 Frame 中:
```python
import cv2
import tkinter as tk
from PIL import Image, ImageTk
# 读取图像
image = cv2.imread("image.jpg")
# 将图像从 BGR 转换为 RGB
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 将图像转换为 PIL 格式
image = Image.fromarray(image)
# 创建 Tkinter 窗口
root = tk.Tk()
root.title("OpenCV 图像展示")
# 创建 Frame 组件
frame = tk.Frame(root)
frame.pack()
# 将 PIL 格式的图像转换为 Tkinter 中的 PhotoImage 格式
photo_image = ImageTk.PhotoImage(image)
# 在 Frame 中创建 Label 组件并展示图像
label = tk.Label(frame, image=photo_image)
label.pack()
# 运行 Tkinter 窗口
root.mainloop()
```
在上面的代码中,首先使用 OpenCV 读取图像,然后将图像从 BGR 格式转换为 RGB 格式,接着将图像转换为 PIL 格式。然后,创建 Tkinter 窗口和 Frame 组件。使用 ImageTk.PhotoImage 将 PIL 格式的图像转换为 Tkinter 中的 PhotoImage 格式。最后,在 Frame 中创建 Label 组件,并将图像展示在 Label 中。
阅读全文