# 获取存放测试图像的路径 test_paths = args.img_paths # 通过Python库函数glob读取指定路径下所有符合匹配条件的文件(图片) img_path_list = glob(test_paths, recursive=True)
时间: 2024-03-21 16:43:49 浏览: 19
根据你提供的代码片段,我可以看出你使用了 Python 的 glob 模块来获取测试集中的所有图片路径。如果某个测试集样本的路径格式不正确,无法从中提取出标签名称,可能是因为在测试集中存在路径格式不正确的文件。
你可以尝试在获取图片路径之前,使用 os 模块的 isfile 函数判断一下路径是否是一个文件,只对文件进行操作,如下所示:
```
import os
test_paths = args.img_paths
img_path_list = []
for path in test_paths:
if os.path.isfile(path):
img_path_list.append(path)
else:
print("Warning: {} is not a file.".format(path))
```
这样可以避免对非文件路径进行操作,避免出现路径格式错误的问题。如果你仍然遇到问题,可以提供更详细的报错信息和代码片段,我可以帮你更好地定位问题所在并给出解决方案。
相关问题
file_paths = glob.glob('D:/wjd/*.png') # 获取 D 盘 wjd 文件夹下的所有 png 图片路径,我现在不想访问文件夹下的所有文件名,而是用 glob 模块获取文件夹下的所有图片路径
如果你想使用 `glob` 模块获取文件夹下的所有图片路径,可以这样写:
```python
import glob
file_paths = glob.glob('D:/wjd/*.png')
for file_path in file_paths:
img = Image.open(file_path)
img = img.resize((224, 224))
img_arr = np.array(img)
img_tensor = tf.convert_to_tensor(img_arr)
img_tensor = tf.expand_dims(img_tensor, axis=0)
print(img_tensor.shape)
```
这样就可以使用 `glob` 模块获取指定文件夹下的所有 `.png` 格式图片的路径,并打开每个图片,转换为张量。
for file in os.listdir("D:/wjd/"+folder): file_paths = glob.glob('D:/wjd/*.png') # 获取 D 盘 wjd 文件夹下的所有 png 图片路径 img = Image.open("D:/wjd/"+folder+"/"+file) file_paths = glob.glob('D:/wjd/*.png') # 获取 D 盘 wjd 文件夹下的所有 png 图片路径 img = img.resize((224, 224)) # 将图片大小调整为 (224, 224) img_arr = np.array(img) # 将图片转换为 numpy 数组 img_tensor = tf.convert_to_tensor(img_arr) # 将 numpy 数组转换为张量 img_tensor = tf.expand_dims(img_tensor, axis=0) # 将张量扩展一个维度,变成 (batch_size, height, width, channels) print(img_tensor.shape) # 输出张量的形状,这段程序正确吗
这段程序有一些问题,主要是下面这两行代码:
```python
file_paths = glob.glob('D:/wjd/*.png') # 获取 D 盘 wjd 文件夹下的所有 png 图片路径
img = Image.open("D:/wjd/"+folder+"/"+file)
```
在 `img = Image.open("D:/wjd/"+folder+"/"+file)` 这行代码中,你已经指定了要打开的图片路径,不需要再使用 `glob` 模块获取文件夹下的所有图片路径了。
另外,在 `for file in os.listdir("D:/wjd/"+folder):` 这行代码中,你已经使用 `os.listdir` 函数获取了文件夹下的所有文件名,应该直接使用 `file` 变量来打开每个文件。
下面是修改后的代码:
```python
import os
import numpy as np
import tensorflow as tf
from PIL import Image
folder = "example_folder" # 假设要打开的文件夹名为 example_folder
for file in os.listdir("D:/wjd/"+folder):
img = Image.open("D:/wjd/"+folder+"/"+file)
img = img.resize((224, 224))
img_arr = np.array(img)
img_tensor = tf.convert_to_tensor(img_arr)
img_tensor = tf.expand_dims(img_tensor, axis=0)
print(img_tensor.shape)
```
这样就可以打开指定文件夹下的所有图片,并将它们转换为张量。