依据上课代码做的,但会出现以下错误
#任务1:数据准备
#步骤1:导入项目所需库
import cv2
import os
import random
import numpy as np
#步骤2:查看数据集基本信息
ROOT_PATH = 'D:\gesture\dataset\gesturee'
subfolders = os.listdir(ROOT_PATH)
for subfolder in subfolders:
source_path=os.path.join(ROOT_PATH,subfolder)
print("{}{}文件夹下共{}个文件".format(ROOT_PATH,subfolder,len(os.listdir(source_path))))
#步骤3:创建目标文件夹
RESIZE_PATH='D:\gesture\dataset\gesture\\aug_resize_data'#统一格式图像存放目录
DST_PATH='D:\gesture\dataset\gesturee\\aug_data'#增广数据所在目标目录
if not os.path.exists(DST_PATH):
for subfolder in subfolders:
new_dir_path=os.path.join(DST_PATH,subfolder)
os.makedirs(new_dir_path)
new_resize_dir_path = os.path.join(RESIZE_PATH, subfolder)
os.makedirs(new_resize_dir_path)
#任务2:完成图像剪裁
#步骤1:编写图像剪裁函数
def rdnsize(img,width,height):
h,w,d=img.shape
if hor wresult=cv2.resize(img,(width,height))
else:
y=random.randint(0,h-height)
x=random.randint(0,w-width)
result=img[y:y+height,x:x+width,:]
return result
#步骤2:调用函数并查看运行结果
for subfolder in subfolders:
dir_path=os.path.join(ROOT_PATH,subfolder)
file_names=os.listdir(dir_path)
for cnt,ff in enumerate(file_names):
path_read_filename=os.path.join(ROOT_PATH,subfolder,ff)
img=cv2.imread(path_read_filename)
if img is None:
print("Faild to read image:",path_read_filename)
continue
resized_file=rdnsize(img,4000,3000)
filename="{}_{:0>3d}.jpg".format(subfolder,cnt)
resized_filename=os.path.join(DST_PATH,subfolder,filename)
cv2.imwrite(resized_filename,resized_file)
resized_filename = os.path.join(RESIZE_PATH, subfolder, filename)
cv2.imwrite(resized_filename, resized_file)
print("{}{}文件夹下共新增{}个随机剪裁图像".format(DST_PATH,subfolder,cnt+1))
print("{}{}文件夹下共新增{}个随机剪裁图像".format(RESIZE_PATH, subfolder, cnt + 1))
#任务3:完成图像随机翻转
#步骤1:编写图像翻转函数
def rdnflip(img):
flipcode=random.randint(-1,1)
result=cv2.flip(img,flipcode)
return result
#步骤2:调用函数并查看运行结果
for subfolder in subfolders:
dir_path=os.path.join(RESIZE_PATH,subfolder)
file_names=os.listdir(dir_path)
for cnt,ff in enumerate(file_names):
path_read_filename=os.path.join(RESIZE_PATH,subfolder,ff)
img=cv2.imread(path_read_filename)
flipped_file=rdnflip(img)
filename = "flipped_{}_{:0>3d}.jpg".format(subfolder, cnt)
flipped_filename = os.path.join(DST_PATH, subfolder, filename)
cv2.imwrite(flipped_filename, flipped_file)
print("{}\{}文件夹下共新增{}个随机翻转图像".format(DST_PATH, subfolder, cnt + 1))
尝试过修改名字,模块更新等方法,依旧不行
希望能正常运行