前面博客介绍了处理数据集的所有操作,接下来看看是不是都修改正确了.
能用python解决的肯定不能手动,(解放鼠标~
打印出以下效果,清晰知道哪里存在错误-_-
那直接上代码,应该不难理解
首先看看自己的图片尺寸大小
import cv2
#file就是自己图片的路径
image = cv2.imread(file,cv2.IMREAD_COLOR)
print(image.shape)
#我这里打印出来的是(384,512,3)
然后是多个文件夹下的展示图
第一层
第二层
第三层
代码如下:
# -*- coding: utf-8 -*-
"""
Created on Tue May 26 08:50:51 2020
@author: 吴
"""
# -*- coding: utf-8 -*-
import cv2
import matplotlib.pyplot as plt
import os
import re
import sys
from PIL import Image
import string
import numpy as np
def checkImage(file,NoResize,NoFormat):
image = cv2.imread(file,cv2.IMREAD_COLOR)
if image is None:
NoResize += [str(file)]
elif image.shape != (384,512,3):
NoFormat += [str(file)]
def checkAll(root):
#待修改文件夹
fileList = os.listdir(root)
#输出文件夹中包含的文件
# print("修改前:"+str(fileList))
#得到进程当前工作目录
currentpath = os.getcwd()
#将当前工作目录修改为待修改文件夹的位置
os.chdir(root)
NoResize = [] #记录没被修改的图片
NoFormat = [] #记录格式不是(512,384)的图片
for file in fileList: #遍历文件夹中所有文件
file = str(file)
checkImage(file,NoResize,NoFormat)
print("---------------------------------------------------")
os.chdir(currentpath) #改回程序运行前的工作目录
sys.stdin.flush() #刷新
if len(NoResize) != 0:
print('没被修改的图片: ',root , '/t' ,NoResize)
if len(NoFormat) != 0:
print('格式不对的图片: ',root , '/t' ,NoFormat)
#只有三层文件夹用这个+++++++++++++++++++++++++++++++++
if __name__=="__main__":
category = ['可回收垃圾', '有害垃圾', '厨余垃圾', '其他垃圾']
for j in range(4):
PATH = r'D:\百步梯\图像识别\garbageClassifier\IMAGEDATA\test' + '/'+ category[j]
#子文件夹
for childPATH in os.listdir(PATH):
#子文件夹路径
childPATH = PATH + '/'+ str(childPATH)
print(childPATH)
checkAll(childPATH)
print('------修改图片大小全部完成-_-')
#只有两层文件夹用这个+++++++++++++++++++++++++++++++++
# if __name__=="__main__":
# PATH = 'resizeImage'
# #子文件夹
# for childPATH in os.listdir(PATH):
# #子文件夹路径
# childPATH = PATH + '/'+ str(childPATH)
# print(childPATH)
# checkAll(childPATH)
# print('------检查图片大小全部完成-_-')
安逸~