pythonにてプログラムを勉強しているのですが、マウスイベントを使ったトリミング方法がわかりません。
願望としてはトリミングしたい領域の左上と右下を順にクリックしてトリミング
ということがしたいです。調べたのですが出てこなくこちらで聞かせていただきます。
import os
import tkinter
import tkinter.filedialog as tkdialog
import cv2
def File_open():
paths = tkdialog.askopenfilenames(filetypes=[(".png", "*.png")], initialdir=dir)
for img_path in paths:
img = cv2.imread(img_path)
if img is None:
continue # 読み込みに失敗した場合
base_path, ext = os.path.splitext(img_path)
save_path = f"{base_path}-crop{ext}"
crop = img[80: , 80:] cv2.imwrite(save_path, crop) print(f"image saved! {save_path}")
root = tkinter.Tk()
root.title("複数トリミング")
root.geometry("400x400")
menubar = tkinter.Menu(root)
filemenu = tkinter.Menu(menubar, tearoff=0)
filemenu.add_command(label='画像読み込み',command=File_open)
filemenu.add_command(label='閉じる',command=root.destroy)
menubar.add_cascade(label="ファイル", menu=filemenu)
root.config(menu=menubar)
root.mainloop()
こちらがトリミングで使用しているコードです。
環境はwin10 64bit python3.6
あなたの回答
tips
プレビュー