python界面添加图片_python打开图片放到tkinter的界面里(opencv方式)

上次使用的别人的代码打开图片放到tkinter的图型界面当中。

虽然感觉没有很懂但是不是自己想用的模块。今天换成了opencv的方式,修改成功。

代码如下:

# -*- coding: utf-8 -*-

"""

Created on Sat Mar  7 18:03:50 2020

@author: liyan

"""

import tkinter

from tkinter import *

from PIL import Image,ImageTk  ###这个是没有想到的模块,也不确定能不能省

from tkinter.filedialog import askopenfilename

import time

import cv2

root = Tk()

root.geometry('500x500')  ##这个小了一点,不知道怎么自适应

root.title('图片处理')

def choosepic():

path_ = askopenfilename()

img= cv2.imread(path_ )

current_image = Image.fromarray(img)

imgtk = ImageTk.PhotoImage(image=current_image)

image_label.config(image=imgtk)

image_label.image = imgtk # keep a reference

path = StringVar()

Button(root, text='选择图片', command=choosepic).pack()

file_entry = Entry(root, state='readonly', text=path)

#file_entry.pack()

image_label = Label(root)

image_label.pack()

root.mainloop()

完成图形界面并且可以很好的打开并显示。方便下一步处理图像里面的信息。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python OpenCV ,可以使用 `cv2.imshow()` 函数显示图像,但是它不支持在窗口添加按钮。要实现在 OpenCV 可视化界面添加按钮,可以使用 Tkinter 模块来创建 GUI 窗口,并将 OpenCV 显示图像嵌入到 Tkinter 窗口。 下面是一个简单的示例代码,它创建一个 Tkinter 窗口,在窗口添加一个按钮,并将 OpenCV 加载的图像显示窗口: ```python import cv2 import tkinter as tk from PIL import Image, ImageTk # 创建 Tkinter 窗口 root = tk.Tk() # 创建 OpenCV 摄像头对象 cap = cv2.VideoCapture(0) # 在 Tkinter 窗口添加按钮 def button_callback(): print("Button clicked") button = tk.Button(root, text="Click me", command=button_callback) button.pack() # 循环读取摄像头图像 while True: ret, frame = cap.read() # 将 OpenCV 图像转换为 PIL 图像 image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) image = Image.fromarray(image) # 将 PIL 图像转换为 Tkinter 图像 photo = ImageTk.PhotoImage(image) # 在 Tkinter 窗口显示图像 label = tk.Label(image=photo) label.image = photo label.pack() # 更新 Tkinter 窗口 root.update() # 如果按下 q 键,退出循环 if cv2.waitKey(1) == ord('q'): break # 释放摄像头对象 cap.release() # 销毁 OpenCV 窗口 cv2.destroyAllWindows() ``` 在这个示例,我们首先创建了一个 Tkinter 窗口,然后使用 OpenCV 创建了一个摄像头对象。我们还添加了一个按钮,当用户单击按钮时,会调用 `button_callback()` 函数。在每个循环迭代,我们读取摄像头图像,并将 OpenCV 图像转换为 PIL 图像。然后,我们将 PIL 图像转换为 Tkinter 图像,并将其显示Tkinter 窗口。最后,我们使用 `cv2.waitKey()` 函数等待用户按下 q 键退出循环,并释放摄像头对象和销毁 OpenCV 窗口。 你可以根据自己的需求修改示例代码,例如将摄像头对象替换为读取视频文件的对象,或者使用 `cv2.imread()` 函数加载静态图像并将其显示Tkinter 窗口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值