gpt4 book ai didi

Python连接一个字符串和一个整数计数器来命名文件夹内的内容

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:56 25 4
gpt4 key购买 nike

我使用的是 widows 10 pro,python 3.6.2rc1。我正在训练一个由 tensorflow 制作的卷积神经网络。作为预处理阶段,我编写了以下代码来调整每个图像的大小。它工作得非常好,但是因为我有超过 100 个训练图像(我把它设置得很低只是为了看看它现在是如何工作的)具有非常不同的名称,最后我希望它们都遵循相同的命名按照“image001”、“image002”等约定,我添加了一个计数器并使用它来更改图像的名称,然后使用 cv2.imwrite() 将其保存到同一文件夹。但是我收到了这个错误:

Traceback (most recent call last):
File "E:/Python/TrainingData/TrainingPrep.py", line 11, in <module>
cv2.imwrite(imageName,re)
cv2.error: D:\Build\OpenCV\opencv-3.2.0\modules\imgcodecs\src\loadsave.cpp:531: error: (-2) could not find a writer for the specified extension in function cv::imwrite_

import cv2
import glob

i=0
images = glob.glob("*.jpg")
for image in images:
img = cv2.imread(image,1)
counter=str(i)
re = cv2.resize(img,(128,128))
imageName = "image"+counter
cv2.imwrite(imageName,re)
i=i+1
print(counter)

我需要我的图像具有名称 image001、image00x。如果你帮我解决这个问题,我将不胜感激。

非常感谢。

最佳答案

imwrite方法需要扩展名来确定文件格式。

只需将您的行更改为(对于 PNG,或您想要的任何文件格式),它应该可以工作:

imageName = "image"+counter+".png"

如果您愿意,您可以稍后使用 glob.glob 重命名这些文件。一个工作示例应该是这样的:

import cv2
import glob
import os

i=0
images = glob.glob("*.jpg")
for image in images:
img = cv2.imread(image,1)
counter=str(i)
re = cv2.resize(img,(128,128))
imageName = "image"+counter+".jpg"
cv2.imwrite(imageName,re)
i=i+1
print(counter)

rename = glob.glob("images*.jpg")
for src in rename:
dst = os.path.splitext(item)[0]
os.rename(src, dst)

关于Python连接一个字符串和一个整数计数器来命名文件夹内的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44810308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com