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

diameter_dict={}

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

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

series_uid = row0

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

annotationDiameter_mm = float(row4)

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

相关推荐
kaixin_啊啊1 分钟前
【零基础学AI】第 24 章课后练习与答案
人工智能
EchoMind-Henry2 分钟前
娱乐资本论发布AI短剧剧本对比文章
人工智能·娱乐
谁在黄金彼岸3 分钟前
Lightpanda无头浏览器实战-Playwright接入与Agent化
人工智能
hkNaruto6 分钟前
【AI】游戏大模型智能体OODA过程记忆问题解决方案:AgenticSTS 有界记忆契约:技术分析与流水线改造操作手册
人工智能·游戏·机器学习
杜子不疼.10 分钟前
没有真机,我给启元 Q1 造了一台“假机器人“:官方 SDK 示例跑通实录
人工智能·机器人
qq_2803914916 分钟前
温度参数设置建议
人工智能
qq_280391491 小时前
Java构建飞书消息格式详解
人工智能
Flynn Liang1 小时前
上线后怎么排查 AI 调用?Spring AI Observability:token/延迟/成本埋点与全链路追踪
java·人工智能·spring·监控·可观测性·observability·springai
lisw052 小时前
智能化机器人系统的模块化设计自动化!
机器学习·机器人·自动化
测试界的小码农2 小时前
【让 AI 生成的测试用例变成 pytest API 自动化脚本】
人工智能·测试用例·pytest