LIDC_IDRI原始数据集转JPEG

文章介绍了如何使用Python脚本将LIDC-IDRI原始数据集中的DICOM图像转换为JPEG格式,并保存到指定输出目录,同时处理了文件夹结构和JPEG文件的创建与管理。

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

import os
import pydicom
from PIL import Image

#LIDC_IDRI原始数据集转JPEG
def creat_path(output_folder,lidc,is_dir=True,image=Image):
    jpeg_number=os.path.join(output_folder, lidc)#F:\data\train_jpeg\LIDC-IDRI-0875
    if not os.path.exists(jpeg_number):
        if is_dir:
            os.mkdir(jpeg_number)
        else:
            #如果文件存在则pass否则保存
            image = image.convert('RGB')
            image.save(jpeg_number, 'JPEG')
    # 删除JPG文件
    jpeg_number2 = jpeg_number.replace("jpeg", "jpg")
    if os.path.exists(jpeg_number2):
        os.remove(jpeg_number2)
    return jpeg_number
def save_final(number_dir1, dir_name2,jpeg_number1):
    number_dir2 = os.path.join(number_dir1, dir_name2)  # F:\data\train\LIDC-IDRI-0875\256245.25456\54646.6545
    jpeg_number2 = creat_path(jpeg_number1, dir_name2)  # F:\data\train_jpeg\LIDC-IDRI-0875\256245.25456\54646.6545
    for file in os.listdir(number_dir2):
        if file.endswith('.dcm'):
            ds = pydicom.dcmread(os.path.join(number_dir2, file))
            # 在这里可以根据窗宽窗位信息对图像进行处理
            image = ds.pixel_array
            # 将图像数据转换为PIL Image对象
            try:
                image = Image.fromarray(image)
            except TypeError:
                pass
            else:
                # 设置输出文件路径和文件名
                output_file = os.path.splitext(file)[0] + '.jpeg'
                # 保存图像为JPEG文件
                creat_path(jpeg_number2, output_file, is_dir=False, image=image)


def save_img(LIDC_IDRI_number, dir_name,jpeg_number):
    number_dir1 = os.path.join(LIDC_IDRI_number, dir_name)  # F:\data\train\LIDC-IDRI-0875\256245.25456
    jpeg_number1 = creat_path(jpeg_number, dir_name)  # F:\data\train_jpeg\LIDC-IDRI-0875\256245.25456
    # 该部分部分mask数据(选择抛弃)未做处理
    dir_name2 = os.listdir(number_dir1)
    for dirname2 in dir_name2:
        save_final(number_dir1, dirname2, jpeg_number1)

# 设置输入和输出文件夹路径
def main():
    input_folder = r'F:\data\train'
    output_folder = r'F:\data\train_jpeg'
    LIDC_IDRI_list=os.listdir(input_folder)
    add_=0
    for lidc in LIDC_IDRI_list:
        LIDC_IDRI_number=os.path.join(input_folder, lidc)#F:\data\train\LIDC-IDRI-0875
        jpeg_number=creat_path(output_folder,lidc)#F:\data\train_jpeg\LIDC-IDRI-0875
        #该部分部分mask数据(选择抛弃)未做处理
        dir_name=os.listdir(LIDC_IDRI_number)
        for dirname1 in dir_name:
            save_img(LIDC_IDRI_number, dirname1,jpeg_number)
        add_+=1
        print(add_/len(LIDC_IDRI_list))

if __name__ == '__main__':
    main()

r""""
F:\data\train
F:\data\train\LIDC-IDRI-0875\w\e
"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值