从一个教授,一个物理学家那里得到这个问题。
我是Python编程的初学者。我不是电脑专家,我是物理学家。我试图用python编写一个代码,用于我自己的研究,其中涉及到一些图像处理。
我需要做的就是显示一个图像,然后用鼠标选择一个感兴趣的区域,最后裁剪出选定的区域。我可以在Matlab中使用ginput()函数来实现这一点。
我试过用PIL。但是我发现,在我发出命令Image.show()之后,图像会显示出来,但是除非我从图像窗口退出,否则程序将停止运行。有没有办法实现我的计划。我需要下载其他模块吗?请告知。
Tags:
就其价值而言(来自另一个物理学家),我只需要在图像处理程序中,比如the GIMP来做这个。用Python(或任何语言)完成这项任务的主要好处是通过自动化过程来节省时间,但是除非你——嗯,教授——能够以某种方式开发一种算法来自动找出要裁剪的图像的哪个部分,否则自动化似乎不会节省太多时间。
如果我没记错的话,GIMP实际上是可以编写脚本的,可能是用Python编写的,所以可以编写一个节省时间的GIMP脚本来完成您的教授朋友想要的工作。
show()只调用它在当前平台上可以找到的任何简单图片查看器,一个可能有或没有裁剪和保存功能的查看器。
如果您在Windows box上,只需要让它在您的计算机上工作,请设置“打开方式…”关联,使其运行图像时将其加载到您选择的编辑器中。在OSX和*nix上,您可能想破解Image.py底部的_showxv()方法,以更改用于打开映像的命令。
如果您确实需要提供可移植的解决方案,则需要使用UI框架来增强裁剪应用程序的功能。这些选择可以归结为Tkinter(ImageTk.py为在Tk中显示PIL图像提供包装)、PyQT4(PIL 1.1.6中的ImageQt为在QT4中显示图像提供包装)或wxPython(使用wxWidgets的高级应用程序创作工具包)。获得一个完整的UI工具包需要做很多工作,但是您将能够完全定制应用程序的界面的工作方式。
虽然我同意David的观点,您可能只需要使用GIMP或其他一些图像处理程序,但这里有一个脚本(我把它当作读者的一个练习)使用pygame来实现您想要的功能。您需要安装pygame和PIL,用法如下:
实际脚本:
希望这有帮助:)
相关问题 更多 >
编程相关推荐