如何使用Python图像处理库裁剪通过鼠标点击选定的区域?

3
有没有一种方法可以使用鼠标单击选择图像中的区域,并使用Python PIL裁剪这些区域? 我该如何做到这一点?
谢谢

1
一旦您获得了鼠标点击坐标,在PIL中处理将变得非常容易,但是您是否在询问如何获取鼠标点击?这已经超出了PIL的范围。 - Mark Ransom
你会使用哪个 GUI 库? - Steven Rumbalski
3个回答

3

2
PIL库本身不提供GUI代码——你正在寻找的是带有GUI的应用程序。我建议使用Tkinter + PIL,但这绝非易事——你需要处理鼠标点击、创建跟踪矩形对象、有一种方法“重置”矩形等等。
不幸的是,用于绘制图形的Canvas Tkinter小部件文档不够充分——你需要在这里阅读它: http://www.pythonware.com/library/tkinter/introduction/canvas.htm 下面是一个示例代码,它从磁盘上读取图像文件并将其绘制在Tkinter窗口上。正如你所看到的,这里需要进行一些对象操作才能得到正确的结果。
import Tkinter
import Image, ImageTk, ImageDraw

image_file = "svg.png"

w = Tkinter.Tk()

img = Image.open(image_file)
width, height = img.size
ca = Tkinter.Canvas(w, width=width, height=height)
ca.pack()
photoimg = ImageTk.PhotoImage("RGB", img.size)
photoimg.paste(img)
ca.create_image(width//2,height//2, image=photoimg)
Tkinter.mainloop()

首先感谢您的回答。我使用了您的示例,但是我无法用鼠标选择图像并裁剪所选图像。 - Carlos Pinto da Silva Neto

1

我尝试制作一个类似的工具,在Jupyter系统中运行,这样您就可以裁剪图像,然后在同一个笔记本中稍后使用裁剪结果。它被设计为适用于多个图像,让您依次裁剪每个图像。看看它是否适合您。可以通过 pip install interactivecrop 安装,但您需要查看博客文章以获取使用说明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接