已有图片情况下的数据集制作

该文描述了一个利用卷积神经网络(CNN)模型将过度曝光图片转为正常图片的项目。数据集制作过程中,将图片分为正常(normal)和过曝光(exposed)两类,通过灰度转换和尺寸调整预处理图像,并按8:2的比例划分为训练集和测试集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片目录

我想制作的项目是一个关于过度曝光图片转化为正常图片的卷积神经网络模型,这里讲的主要是在已经有图片情况下的数据集制作
在我想制作的项目中,我分为normal和exposed文件夹 内部对于一个场景的正常和过曝光图片的文件名是相同的。
具体目录为./pictures/normal 和 ./pictures/exposed 两个文件夹

如下两张图片此为正常情况下的图片

这是经过软件处理后过度曝光的图片
图片皆为彩色图片,在训练模型时因为主要是做测试所用所以要转化为灰度图片较好,虽然是灰度图,但实际还是三通道,同时将两边图片打上标签。如果想制作鉴别模型就分个8:2开 变成训练集和测试集

具体的数据集制作代码如下

import os
import random
import cv2
import numpy as np

# 设置图片路径和标签
img_dir = "./pictures"
labels = ['normal', 'exposed']

# 设置数据集路径
dataset_dir = './pictures/dataset'

# 创建保存训练集和测试集的文件夹
train_dir = os.path.join(dataset_dir, 'train')
test_dir = os.path.join(dataset_dir, 'test')
if not os.path.exists(train_dir):
    os.makedirs(train_dir)
if not os.path.exists(test_dir):
    os.makedirs(test_dir)

# 创建数据集
for label in labels:
    img_label_dir = os.path.join(img_dir, label)
    files = os.listdir(img_label_dir)
    random.shuffle(files)
    for i, file in enumerate(files):
        img_path = os.path.join(img_label_dir, file)
        img = cv2.imread(img_path)

        # 确保图像是彩色图像
        if len(img.shape) < 3 or img.shape[2] != 3:
            continue

        # 缩放图像大小
        img = cv2.resize(img, (256, 256))

        # 将彩色图像转换为灰度图像
        gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        # 构造保存路径和文件名
        if i < len(files) * 0.8:
            save_dir = train_dir
        else:
            save_dir = test_dir
        save_label_dir = os.path.join(save_dir, label)
        if not os.path.exists(save_label_dir):
            os.makedirs(save_label_dir)
        save_path = os.path.join(save_label_dir, file)

        # 保存图像
        cv2.imwrite(save_path, gray_img)

print('数据集制作完成!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值