需求:
写一个软件,要求本地打开一张图片显示出来,并可以进行选框标注,自动生成坐标,同时给出输入框,可以手动输入内容,并保存成json文件 。
输入: 本地打开一张图片
操作: 鼠标进行选框标注,并输入选框内的文字
输出: 坐标值: x、y、w、h,json文件。 json文件包含 x、y、w、h和文字内容。
选工具
对python比较熟悉 ,Tkinter工具使用过,首选吧。 tkinter的文档比较少,但是做的过程中遇到的一些问题还是不能解决。
打开文件 并显示图片
#-*- coding:utf-8 -*-
import tkinter
from tkinter import *
from PIL import Image,ImageTk
from tkinter.filedialog import askopenfilename
import time
root = Tk()
root.geometry('500x500')
root.title('图片处理')
def choosepic():
path_ = askopenfilename()
path.set(path_)
img_open = Image.open(file_entry.get())
img = ImageTk.PhotoImage(img_open)
image_label.config(image=img)
image_label.image = img # 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()
打开图片并刷新label显示,我自己写的代码一直没有成功,label打开后总是不能成功。以上代码参考下面连接。
python如何在tkinter中动态显示label图片
直接上全部代码吧
# -*- coding:utf-8 -*-
import tkinter
import tkinter.filedialog
import os
from PIL import ImageGrab
from time import sleep