繁体   English   中英

如何使用tkinter.filedialog askopenfiles打开多张图片

[英]How do I open multiple pictures using tkinter.filedialog askopenfiles

我正在一个大学研究项目中分析图像,细节对于这个问题并不重要,为了清楚起见,我将那些部分省略。

我的代码对单个图像效果很好,但是对多个图像却有麻烦 Tkinter确实没有关于此的好的文档,我一直在努力弄清楚。

这是工作代码的示例

import matplotlib.pyplot as plt
from skimage import data
from tkinter.filedialog import askopenfile

image_formats= [("JPEG", "*.jpg")]
file_path = askopenfile(filetypes=image_formats, initialdir="/", title='Please select a picture to analyze')

image = data.imread(file_path.name)

plt.imshow(image)
plt.show()

此代码允许我单击一个图像以在tkinter菜单中打开,但不允许按住ctrl键单击以显示多个图像

如果我将每个“ askopenfile”都更改为“ askopenfile s ”,则可以按住ctrl键单击多个图像,但会引发错误:

image = data.imread(file_path.name)
AttributeError: 'NoneType' object has no attribute 'name'

我知道我将不得不做一个循环来打开每个图像,但是我真的不知道我做错了什么,或者对多幅图像进行正确处理的正确方法。

我在寻找一个修复程序将允许让Tkinter的抓住 文件路径 ,并把它们转化为skimage 列表 ,并matplotlib打开(后分析) 用户可以按住Ctrl键单击多个图像

抱歉,如果操作太复杂,如果您需要更多说明或屏幕截图,我们非常乐意进行编辑,以使问题很清楚。

如果只想使用名称,则应使用askopenfilenames() 范例-

import matplotlib.pyplot as plt
from skimage import data
from tkinter.filedialog import askopenfilenames

image_formats= [("JPEG", "*.jpg")]
file_path_list = askopenfilenames(filetypes=image_formats, initialdir="/", title='Please select a picture to analyze')

for file_path in file_path_list:
    image = data.imread(file_path)

    plt.imshow(image)
    plt.show()

askopenfile()实际上为您打开文件并返回(或askopenfiles()打开所有文件并返回它们)。 我不太确定是什么原因导致file_path变为None。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM