在已知DICOM和三维模型对应掩膜的情况下,计算三维模型的体积。
思路:
1、计算每个体素的体积。每个体素为长方体,x,y为PixelSpacing,z为层间距
使用pydicom.read_file读取DICOM文件,dcm_tag.PixelSpacing获取像素间距,dcm_tag.SliceLocation 获取层间距
2、计算体素的个数
代码如下:
from PIL import Image import numpy as np import pydicom import os def get_pixels_No(bmp_data_dir): pixels_No = 0 bmp_files = os.listdir(bmp_data_dir) for bmp in bmp_files: bmp_file = os.path.join(bmp_data_dir,bmp) img = Image.open(bmp_file) img_array = np.array(img) # img_array.dtype为布尔类型,需要转换为Int类型,其累加和恰好为体素总和 img_array_int = img_array.astype(int) pixels_No = pixels_No+img_array_int.sum() return pixels_No def get_pixel_info(dcm_data_dir): pixel_infos = [] dcm_files = os.listdir(dcm_data_dir) dcm_file_1 = os.path.join(dcm_data_dir,dcm_files[0]) dcm_tag_1 = pydicom.read_file(dcm_file_1) # 获取像素间距. spacex, spacey = dcm_tag_1.PixelSpacing # 获取层间距 # 有些 dcm图像并不是按照InstanceNumber进行排序的,不能直接用最后一张的slicelocation减去第一张,再除以张数 SliceLocations = [] ImagePositon_z = [] for dcm in dcm_files: dcm_file = os.path.join(dcm_data_dir, dcm) dcm_tag = pydicom.read_file(dcm_file) SliceLocations.append(dcm_tag.SliceLocation) ImagePositon_z.append(dcm_tag.ImagePositionPatient[2]) SliceLocations_max =max(SliceLocations) SliceLocations_min =min(SliceLocations) ImagePositon_z_max = max(ImagePositon_z) ImagePositon_z_min = min(ImagePositon_z) print(SliceLocations_max) print(SliceLocations_min) print(ImagePositon_z_max) print(ImagePositon_z_min) if SliceLocations_max - SliceLocations_min < 1e-10: spacez = abs(ImagePositon_z_max - ImagePositon_z_min)/(len(dcm_files)-1) else: spacez = abs(SliceLocations_max - SliceLocations_min)/(len(dcm_files)-1) pixel_infos = [spacex, spacey, spacez] return pixel_infos def get_volume(dcm_data_dir,bmp_data_dir): pixel_infos = get_pixel_info(dcm_data_dir) pixels_No = get_pixels_No(bmp_data_dir) volume=pixel_infos[0]*pixel_infos[1]*pixel_infos[2]*pixels_No/1000 return volume # dcm = pydicom.read_file(r"E:\20181210090945_LENG HONGYING F-44Y\Venous\0000.dcm") # print(dcm) # print(dcm.ImagePositionPatient[2]) # print(dcm[0x0020, 0x0032].keyword,dcm[0x0020, 0x0032].value) volume=get_volume(r"E:\20181210090945_LENG HONGYING F-44Y\Venous",r"E:\20181210090945_LENG HONGYING F-44Y\Results\LungL") print("体积为%.1f"%volume)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]