我有以下代码,应该是
这是
import cv2
import os
import random as rnd
outdir0='cancerdata\\0'
outdir1='cancerdata\\1'
readdir='sample'
j=0;
for dirs in os.listdir(readdir):
dpath=os.path.join(readdir,dirs)
for subdir in os.listdir(dpath):
fpath=os.path.join(dpath,subdir)
for file in os.listdir(fpath):
rfile=os.path.join(fpath,file)
image=cv2.imread(rfile,0)
size=rnd.randint(50,100)
img=cv2.resize(image,(size,size),interpolation=cv2.INTER_AREA)
print(img)
if subdir == '0':
wfile=os.path.join(outdir0,file)
cv2.imwrite(os.path.join(outdir0,file),img)
elif subdir == '1':
wfile=os.path.join(outdir1,file)
cv2.imwrite(os.path.join(outdir1,file),img)
它不会出错,但由于某种原因不保存任何文件。 每当我尝试通过
保存单个图像时 cv2.imwrite(r'sample\cancerdata\1\8865_idx5_x2101_y851_class1.png',img)
我得到的只是假。
答案 0 :(得分:1)
在python字符串中使用反斜杠(\
)会导致意外。在上面的代码中,反斜杠产生的字符来自八进制值,该值在Windows上的文件名中无效。有关详细信息,请参阅https://docs.python.org/3/reference/lexical_analysis.html#literals。
Python运行时非常满意Windows上的正斜杠(/
)。使用那些。
答案 1 :(得分:0)
您要保存的文件夹可能不存在。
确保这些文件夹存在:
cancerdata\0
cancerdata\1
sample\cancerdata\1
答案 2 :(得分:0)
首先将要存储图像的目录设置为当前工作目录。然后只需简单地传递图像名称即可保存您的图像。