Pytorch项目,肺癌检测项目之二

diameter_dict={}

with open('/xunlian/annotations.csv' ,'r') as f:

for row in list(csv.reader(f)[1:]):

series_uid = row[0]

annotationCenter_xyz = tuple([float(x) for x in row[1:4]])

annotationDiameter_mm = float(row[4])

diameter_dict.setdefault(series_uid,[]).append(annotationCenter_xyz ,annotationDiameter_mm )

#两个文件存储的中心点坐标距离相差是否超过了结节直径的四分之一

candidateInfo_list.sort(reverse=True)

return candidateInfo_list

导入SimpleITK

import SimpleITK as sitk

class Ct:

def init(self,series_uid):

mhd_path = glob.glob('/xunlian/subset*/{}.mhd'.format(series_uid))[0]

ct_mhd = sitk.ReadImage(mhd_path)

ct_a = np.array(sitk.GetArrayFromImage(ct_mhd),dtype=np.float32

ct_a.clip(-1000,1000,ct_a)

self.series_uid = series_uid

self.hu_a = ct_a # HU

self.origin_xyz = XyzTuple(*ct_mhd.GetOrigin())

self.vxSize_xyz = XyzTuple(*ct_mhd.GetSpacing())

self.direction_a = np.array(ct_mhd.GetDirection().reshape(3,3))

毫米为单位的坐标称为 (X,Y,Z)坐标,以体素为单位的坐标称为(I,R,C)

数据坐标系的转化的代码实现

IrcTuple = collections.namedtuple('IrcTuple',['index','row','col'])

XyzTuple = collections.namedtuple('XyzTuple',['x','y','z'])

相关推荐
IT大师兄吖几秒前
fashn-vton-1.5 一键换装 懒人整合包
人工智能
饼干哥哥1 分钟前
为什么越来越多企业开始做 AI Agent工作流平台?
人工智能
AI猫站长2 分钟前
工信部发布具身智能首份强制标准:静态定位误差≤0.1°、动态响应≤50ms、多模态任务成功率≥85%
大数据·人工智能·机器学习·具身智能·灵心巧手
skywalk81632 分钟前
整理‌ 主流国产AI龙虾的核心能力对比表(支持平台/部署方式/适用场景)腾讯WorkBuddy‌ ‌阿里JVS Claw 百度DuMate
人工智能
Learn Beyond Limits6 分钟前
RNN的多样化用途|The diverse applications of RNN
人工智能·深度学习·神经网络·机器学习·ai·语言模型·自然语言处理
Fu-dada7 分钟前
从珍妮纺纱机到生成式AI:一场跨越百年的“消失”与重生
人工智能
一路向北he8 分钟前
杰理ac6951和ac701都有哪些区别呢?
人工智能
出海小龙8 分钟前
SaaS 联盟营销 vs 推荐返利:哪种模式更适合你的产品?
人工智能
人道领域9 分钟前
2026技术展望】Python与AI的深度融合:从“能用”到“好用”的质变之年
人工智能·python·大模型·agent
dyclg17 分钟前
OpenClaw使用kimi web_search返回401问题
人工智能·ai