OpenCV imwrite 不保存照片,返回 false

I.J*_*eem 5 python opencv

我有以下代码,应该是

  • 浏览所有文件
  • 收集属于文件夹“0”或“1”的所有照片
  • 将照片稍微变换一下
  • 将它们放入一个新文件夹中,---所有“0-照片”都会进入一个唯一的文件夹。1个也一样

这里是

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)
Run Code Online (Sandbox Code Playgroud)

它不会给出错误,但由于某种原因不会保存任何文件。每当我尝试通过保存单个图像时

 cv2.imwrite(r'sample\cancerdata\1\8865_idx5_x2101_y851_class1.png',img)
Run Code Online (Sandbox Code Playgroud)

我得到的都是假的。

Dav*_*ith 5

在 Python 字符串中使用反斜杠 ( \) 可能会导致意外。在上面的代码中,反斜杠生成一个具有八进制值的字符,该字符在 Windows 上的文件名中无效。有关详细信息,请参阅https://docs.python.org/3/reference/lexical_analysis.html#literals

Python 运行时非常适合/Windows 上的正斜杠 ( )。使用那些。


And*_*kha 4

您要保存到的文件夹可能不存在。

确保这些文件夹存在:

cancerdata\0
cancerdata\1
sample\cancerdata\1
Run Code Online (Sandbox Code Playgroud)