python - 无法读取图片列表 cv2.imread()

标签 python opencv listdir

我是编程新手,我想用 gui 制作一个图片缩放器。 我在制作 gui 时遇到问题。 我捕获了代码中有问题的部分:

from tkinter import *
from tkinter import filedialog
import os, backend, glob2, cv2

loaded_pics=[]
picture_read=[]
window = Tk()

browsed_dir = StringVar()

browsed_dir.set(filedialog.askdirectory(initialdir="/",title='Please select a directory'))
file_path = browsed_dir.get()#+"/"

for filename in os.listdir(file_path):
    if filename.endswith(('.jpg', '.jpeg', '.gif', '.png')):
        loaded_pics.append(filename)
print(loaded_pics)

try:
    for images in loaded_pics:
        imgs = cv2.imread(images, 1)
        print(imgs)
except:
    print("ERROR")


window.destroy()
window.mainloop()

所以,我有一个 .png/.jpg/.bmp 文件列表,我可以打印该列表,但我无法使用 cv2.imread() 读取它们,当我打印(imgs) 时,我得到“无” “-s。

(我没能用 glob2 做到这一点。它在当前目录下工作得很好,但我无法用 filedialog 做到这一点。)

希望有人能帮忙。

提前致谢!

最佳答案

您正在 loaded_pics 中构建文件名列表。但这不包括目录名称file_path。因此,当您调用 imread 时,您的图像实际上位于 file_path/filename 处,但您仅传递 filename。因此 cv2 无法找到您的文件,并返回 None

关于python - 无法读取图片列表 cv2.imread(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042477/

相关文章:

php - 无法执行从 php 导入 cv2.so 的 python 脚本

python - 如何读取从 os.listdir 获取的文件内容?

python - 在python中获取tgz文件的目录结构

Python 套接字服务器失败

python - 在 Python 中使用 .split() 和 .join()

python - 没有名为 'chardet' 的模块

python - 如何使用 f2py 从 fortran 程序创建 python 模块?

opencv - 如何配置while循环以使用picamera?

opencv - JavaCV 将 Java 数组传递给带有@StdVector 的函数

python - 查看文件夹内部