在数据集中扩充图像时遇到ValueError:在模式“i”下找不到读取指定文件的格式

2024-09-25 02:39:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个初级的神经网络课程,我真的很挣扎。你知道吗

我有一个图像数据集,它不够大,不足以训练我的网络,所以我试图增强它们(旋转/噪声添加等),并将增强的图像添加到原始集。我正在跟踪Medium上的代码:https://medium.com/@thimblot/data-augmentation-boost-your-image-dataset-with-few-lines-of-python-155c2dc1baec

然而,我遇到了ValueError: Could not find a format to read the specified file in mode 'i'

不知道这个错误意味着什么,也不知道如何去解决它。任何帮助都将不胜感激。你知道吗

import random
from scipy import ndarray
import skimage as sk
from skimage import transform
from skimage import util

path1 = "/Users/.../"
path2 = "/Users/.../"
listing = os.listdir(path1)  

num_files_desired = 1000

image = [os.path.join(path2, f) for f in os.listdir(path2) if os.path.isfile(os.path.join(path2, f))]

num_generated_files = 0
while num_generated_files <= num_files_desired:
    image_path = random.choice(image)
    image_to_transform = sk.io.imread(image_path)

    137     if format is None:
    138         raise ValueError(
--> 139             "Could not find a format to read the specified file " "in mode %r" % mode
    140         )
    141 

ValueError: Could not find a format to read the specified file in mode 'i'

Tags: topathinimageimportformatosmode
1条回答
网友
1楼 · 发布于 2024-09-25 02:39:37

我看不出什么可能性。在传给他们之前。我想表达一下你的错误。它基本上是一个指示,你的图像不能被sk.io.imread()读取。让我来谈谈可能要做的事情:

  • 您的[os.path.join(path2, f) for f in os.listdir(path2) if os.path.isfile(os.path.join(path2, f))]部分可能无法正确给出图像路径。你必须手动更正它。如果是这样,您可以手动给出确切的文件夹,而无需执行此类循环。只需使用os.listdir()并手动读取文件。

  • 您还可以使用glob来读取具有相同扩展名的文件,比如.jpg之类的文件。

  • 您的文件可能已损坏。您可以通过使用PIL来消除它们,并首先使用PIL读取图像,比如image = Image.open(),然后使用image.verify()方法。

  • 尝试阅读sk.io.imread(filename, plugin=''插件部分可能会解决您的问题。

希望有帮助。你知道吗

相关问题 更多 >