import os import shutil import PIL.Image as Image import cv2 import numpy as np import pandas as pd def selet_pic(imgpath,labpath): pic_path = os.listdir(labpath) list = [] for alldir in pic_path: child = os.path.join(labpath,alldir) img = Image.open(child) # img.show() pic_arrays = np.array(img) #将图片转化成数组 if np.mean(pic_arrays) == 0: # print("图片为黑色",alldir) list.append(alldir) # print(list) return list def del_pic(list): for i in list: img_path = os.path.join(imgpath,i) lab_path = os.path.join(labpath,i) print(lab_path) os.remove(img_path) #直接删除 os.remove(lab_path) # shutil.move(img_path, img_del_path) # shutil.move(lab_path,lab_del_path) #移到指定位置 if __name__== "__main__": imgpath = r'D:\shiyan\img\waterbody\water\img_256' labpath = r'D:\shiyan\img\waterbody\water\label_256' list = selet_pic(imgpath,labpath) # del_pic(list,img_del_path,lab_del_path) del_pic(list)
时间: 2024-04-28 12:27:07 浏览: 95
这段代码定义了两个函数`selet_pic`和`del_pic`,并在`if __name__== "__main__":`语句下面进行调用。具体来说,代码的作用是:
1. `selet_pic`函数:该函数接受两个参数`imgpath`和`labpath`,分别表示图片文件和标签文件所在的目录。在该函数中,首先通过`os.listdir`获取标签文件目录下的所有文件名,并将它们存储在`pic_path`列表中。然后,遍历该列表中的每一个文件名,将其拼接为完整的路径,读取对应的图片文件并将其转化成数组形式。接着,判断该数组的平均值是否等于0,如果是,则将该文件名添加到`list`列表中。最后,返回`list`列表。
2. `del_pic`函数:该函数接受一个参数`list`,表示要删除的文件名列表。在该函数中,遍历`list`列表中的每一个文件名,将其拼接为完整的路径,并使用`os.remove`函数直接删除对应的图片文件和标签文件。
3. 在`if __name__== "__main__":`语句下面,定义了`imgpath`和`labpath`两个变量,分别表示图片文件和标签文件所在的目录。接着,调用`selet_pic`函数获取需要删除的文件名列表,然后调用`del_pic`函数删除对应的文件。
相关问题
import os, yaml, pickle, shutil, tarfile, glob import cv2 import albumentations import PIL import numpy as np import torchvision.transforms.functional as TF from omegaconf import OmegaConf from functools import partial from PIL import Image from tqdm import tqdm from torch.utils.data import Dataset, Subset import taming.data.utils as tdu from taming.data.imagenet import str_to_indices, give_synsets_from_indices, download, retrieve from taming.data.imagenet import ImagePaths from ldm.modules.image_degradation import degradation_fn_bsr, degradation_fn_bsr_light 解释
这段代码是 Python 中的一些导入语句,它们用于导入一些常用的库和模块,以便在后续的代码中使用它们。具体来说:
- os:提供了访问操作系统功能的接口,如文件系统、进程管理等。
- yaml:提供了读取和写入 YAML 格式文件的功能。
- pickle:提供了将 Python 对象序列化和反序列化的功能。
- shutil:提供了高级的文件操作功能,如复制、移动、删除等。
- tarfile:提供了访问 tar 文件的功能。
- glob:提供了匹配文件路径的功能。
- cv2:OpenCV 库,提供了计算机视觉相关的功能,如图像处理、计算机视觉算法等。
- albumentations:提供了数据增强相关的功能,如随机裁剪、旋转、缩放等。
- PIL:Python Imaging Library,提供了图像处理相关的功能,如图像缩放、旋转、裁剪等。
- numpy:提供了高性能的数值计算功能。
- torchvision.transforms.functional:提供了图像变换的功能,如旋转、裁剪、翻转等。
- OmegaConf:提供了配置文件的读取和解析功能。
- partial:提供了创建一个新函数的功能,该新函数是原函数的一个部分应用。
- Image:PIL 库中的一个类,用于表示图像。
- tqdm:提供了进度条功能,用于显示任务执行的进度。
- Dataset:PyTorch 中的一个抽象类,用于表示数据集。
- Subset:PyTorch 中的一个类,用于表示数据集的子集。
- taming.data.utils:taming data 包中的一个模块,提供了一些数据处理相关的函数。
- taming.data.imagenet:taming data 包中的一个模块,提供了 ImageNet 数据集的相关函数。
- str_to_indices:将 ImageNet 数据集中的类别名称转换为对应的类别索引。
- give_synsets_from_indices:根据 ImageNet 类别索引获取对应的 synset。
- download:下载 ImageNet 数据集。
- retrieve:从 ImageNet 数据集中提取图像。
- ImagePaths:表示 ImageNet 数据集中图像的路径。
- degradation_fn_bsr:图像降质函数,用于生成降质后的图像。
- degradation_fn_bsr_light:轻量级的图像降质函数。
import os import shutil from time import time from datetime import datetime import configparser import argparse import numpy as np import mxnet as mx from mxnet import nd from mxnet import gluon from mxnet import autograd from mxboard import SummaryWriter from lib.utils import compute_val_loss, evaluate, predict from lib.data_preparation import read_and_generate_dataset from model.model_config import get_backbones
这段代码是用来做什么的?
这段代码是用来导入所需的 Python 模块和库,以及定义一些函数和变量,用于训练和评估深度学习模型。其中包括 MXNet 框架、数据读取和处理、模型配置等。同时还包括了一些辅助函数,如计算验证集损失、评估模型性能、预测等。
阅读全文