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'])

相关推荐
万少26 分钟前
小龙虾(openclaw),轻松玩转自动发帖
前端·人工智能·后端
飞哥数智坊2 小时前
openclaw 重大更新,真的懂我啊
人工智能
KaneLogger2 小时前
AI 时代编程范式迁移的思考
人工智能·程序员·代码规范
飞哥数智坊2 小时前
养虾记第2期:从“人工智障”到“赛博分身”,你的龙虾还缺这两个灵魂
人工智能
飞哥数智坊2 小时前
龙虾虽香,小心扎手!官方点名后,我们该怎么“养虾”?
人工智能
yiyu07163 小时前
3分钟搞懂深度学习AI:实操篇:卷积层
人工智能·深度学习
字节架构前端4 小时前
Skill再回首—深度解读Anthropic官方最新Skill白皮书
人工智能·agent·ai编程
冬奇Lab5 小时前
OpenClaw 深度解析(八):Skill 系统——让 LLM 按需学习工作流
人工智能·开源·源码阅读
冬奇Lab5 小时前
一天一个开源项目(第45篇):OpenAI Agents SDK Python - 轻量级多 Agent 工作流框架,支持 100+ LLM 与实时语音
人工智能·开源·openai