实现一个Python语言程序,使用OpenCV库,完成上传图像并显示的程序,提供可视化界面,用同一个界面显示上传的图像的代码,需要在按钮界面上显示上传的图像,要求输出的图像大小尺寸为200*200,初始界面要求尺寸300*300
时间: 2024-10-11 12:03:13 浏览: 29
使用OpenCV与Qt写的一个图像处理工具
在Python中,我们可以使用Tkinter作为GUI库来创建用户界面,结合OpenCV库处理图像上传和显示。下面是一个简单的示例代码,它展示了一个窗口,用户可以选择图片文件并预览缩略图:
```python
import tkinter as tk
from tkinter import filedialog
import cv2
def select_image():
# 使用filedialog打开文件选择器
file_path = filedialog.askopenfilename(filetypes=[("All Files", "*.*"), ("Image Files", "*.jpg *.png")])
if file_path:
img = cv2.imread(file_path)
# 缩放图片到200x200像素
resized_img = cv2.resize(img, (200, 200), interpolation=cv2.INTER_AREA)
# 显示图片
canvas.create_image(150, 150, image=imgtk) # 初始位置调整为适应300x300窗口
canvas.image = imgtk # 保存当前显示的图片
root = tk.Tk()
root.geometry("300x300") # 设置窗口尺寸为300x300
# 创建一个Canvas用于显示图片
canvas = tk.Canvas(root, width=200, height=200)
canvas.pack()
# 按钮控件
button = tk.Button(text="Choose Image", command=select_image)
button.pack(pady=10)
imgtk = None # 临时变量,用于将cv2的图片转为Tk可用的 PhotoImage
root.mainloop()
```
在这个例子中,我们首先导入了必要的库,然后定义了一个`select_image`函数,当点击“Choose Image”按钮时会触发这个函数。函数中,通过`filedialog`选择了图片,读取图像后使用`cv2.resize`将其缩小至200x200。最后,在Tkinter的`Canvas`上显示缩略图。
阅读全文