原图像+mask外扩
def crop_image_and_mask(image_path, mask_path, mask_expansion=0):
# 加载图像和掩膜数据
image_nii = nib.load(image_path)
mask_nii = nib.load(mask_path)
# 获取图像和掩膜的 numpy 数组
image_data = image_nii.get_fdata()
mask_data = mask_nii.get_fdata()
# 获取图像的空间分辨率(单位为毫米)
voxel_size = image_nii.header.get_zooms() # 获取像素尺寸(x, y, z方向上的尺寸,单位是毫米)
# 转换 mask_expansion 从毫米到像素
expansion_pixels = [int(mask_expansion / size) for size in voxel_size]
# 获取掩膜中非零值的坐标
mask_nonzero_coords = np.argwhere(mask_data > 0)
# 找到掩膜的最小和最大坐标
min_coords = mask_nonzero_coords.min(axis=0)
max_coords = mask_nonzero_coords.max(axis=0)
# 扩展掩膜的范围
min_coords_expanded = np.maximum(min_coords - expansion_pixels, 0)
max_coords_expanded = np.minimum(max_coords + expansion_pixels, image_data.shape)
# 截取图像和掩膜中对应的部分
cropped_image_data = image_data[min_coords_expanded[0]:max_coords_expanded[0] + 1,
min_coords_expanded[1]:max_coords_expanded[1] + 1,
min_coords_expanded[2]:max_coords_expanded[2] + 1]
cropped_mask_data = mask_data[min_coords_expanded[0]:max_coords_expanded[0] + 1,
min_coords_expanded[1]:max_coords_expanded[1] + 1,
min_coords_expanded[2]:max_coords_expanded[2] + 1]
# 打印扩展后的起始和终止坐标
print(f"Expanded crop start coordinates: {min_coords_expanded}")
print(f"Expanded crop end coordinates: {max_coords_expanded}")
# 创建新的 nifti 图像
cropped_image_nii = nib.Nifti1Image(cropped_image_data, image_nii.affine)
cropped_mask_nii = nib.Nifti1Image(cropped_mask_data, mask_nii.affine)
# 保存截取后的图像和掩膜
nib.save(cropped_image_nii, image_path.replace('image', f'image_ROI_{mask_expansion}_{mask_expansion}_{mask_expansion}'))
nib.save(cropped_mask_nii, mask_path.replace('label', f'label_ROI_{mask_expansion}_{mask_expansion}_{mask_expansion}'))
Latex – acro package用法
acro
是一个 LaTeX 包,用于创建和管理缩写词及术语的定义,尤其适用于需要频繁引用缩写词和术语的文档。它不仅能够自动管理缩写词的首次出现与后续引用,还可以生成缩写词表
torch cuda版本国内源安装
目前国内只有阿里云有cuda版本的torch,具体方法如下:
继续阅读“torch cuda版本国内源安装”传统分类方法全家桶
因为要对比很多的传统方法,所以写了个小的结构可以方便的增加训练模型,内置十多种分类方法,把需要跑的模型注释解除就可以了
对于别的任务,主要是修改read_data和columns,选定正确的X和Y参数即可
除了xgb比较慢别的都是秒出结果的
继续阅读“传统分类方法全家桶”PCA+梯度下降提取椎骨对称面算法
这个任务主要工作是确定椎骨的中心对称面,为椎弓根螺钉植入提供参考依据,输入的是.nii.gz的单节椎骨分割mask,大致形态如下:

动态效果:
Golang中的插件(译)
自用学习率衰减策略
还是要看具体任务来用,市面上已有的学习率策略其实很多,但是大部分很难有效….
继续阅读“自用学习率衰减策略”PowerShell脚本提取csv当中指定关键词(多个)字段开头的列
权限设置:管理员打开PowerShell-输入命令Set-ExecutionPolicy unrestricted
好处就是任何地方都能执行,不需要任何环境
继续阅读“PowerShell脚本提取csv当中指定关键词(多个)字段开头的列”2024/12/03 刷题记录
Springer Nature LaTex Template使用记录
切换双栏
\documentclass[default,iicol]{sn-jnl}