工作习得(长期记录)

Linux相关

  • 由一个命令引发的GPU学习

  • linux给文件夹添加用户权限,参考

    • ls -l 命令可以查看当前文件夹的权限和所有者

项目相关

  • 熟练掌握最小系统测试
  • 服务器跑项目,一定要在窗口运行,避免本地机关机

conda环境相关

  • 必要的两步
    1.创建环境
    conda create -n [environment name] python=3.10
    2.装torch
    pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
    3.装第三方库(默认安装最新版本)
    pip install -U [package name]
  • 如果第三方库在pip&conda上面都没有,尝试下面方法:
    1.找到库的GitHub地址;
    2.Download项目;
    3.在终端切换目录cd /path/to/the/project
    4.激活环境conda activate [environment name]
    5.安装库python setup.py install

代码相关

  • argparse包,主要语句(例子)
    
    import argparse
    
    parser = argparse.ArgumentParser()
    
    # 添加变量(此处为三个)
    parser.add_argument('--folder_ref',type=str, default=r'/homes/xchang/Data/WuHu_Kidney/nnUNet_raw/Dataset074_WuHuKidney/labelTs')
    parser.add_argument('--folder_pred',type=str, default=r'/homes/xchang/Data/WuHu_Kidney/nnUNet_predict_result_modified/Dataset074_WuHuKidney')
    parser.add_argument('--output_file',type=str, default=r'/homes/xchang/Data/WuHu_Kidney/nnUNet_predict_result_modified/Dataset074_WuHuKidney/summary.json')
    args = parser.parse_args()
    
    folder_ref = args.folder_ref
    folder_pred = args.folder_pred
    output_file = args.output_file
    
  • python排序:自然排序(例子)
    
    # 获取目录中所有的.png文件并按名称排序,按照key指定的内容进行自然排序
    image_files = sorted([f for f in os.listdir(input_dir) if f.endswith('.png')], key=lambda x: int(x.split('_')[1]))
    

CT图像相关

参考博客:dcm和nii格式的CT图像
参考博客:重采样和窗宽窗位调整的理解

  • CT图像是一定要进行窗宽窗位调整的!!!
  • 窗宽窗位调整(说的是CT的Hu值)
    • dcm是直接中CT扫描仪里面导出来的,它记录的往往却是像素值,无负值!而nii记录的往往是Hu值,有负值!
    • 所以nii文件不需要将像素值变换成Hu,直接进行窗宽和窗位设置就好了。

# 窗宽窗位归一化代码
import nibabel as nib
import numpy as np

def normalize_ct_image(input_file, output_file, window_width, window_center):
    # 读取 NIfTI 文件
    nifti_img = nib.load(input_file)

    # 获取图像数据
    image_data = nifti_img.get_fdata()

    # 计算窗宽窗位范围
    min_value = window_center - window_width / 2.0
    max_value = window_center + window_width / 2.0

    # 对图像数据进行归一化处理
    normalized_image = np.clip((image_data - min_value) / (max_value - min_value), 0, 1)

    # 创建新的 NIfTI 对象并保存
    normalized_nifti = nib.Nifti1Image(normalized_image, nifti_img.affine)
    nib.save(normalized_nifti, output_file)

nii图像相关

python中查看一个.nii图像的方式


from nibabel.viewers import OrthoSlicer3D
OrthoSlicer3D(data.transpose(1,2,0)).show()
posted @ 2024-01-08 19:00  Elina-Chang  阅读(75)  评论(0)    收藏  举报