prepro.py
import matplotlib.pyplot as plt
import pydicom.uid
import sys
from PyQt5 import QtGui
import os
import pydicom
import glob
from PIL import *
import matplotlib.pyplot as plt
from pylab import *
from tkinter.filedialog import *
import numpy
import SimpleITK as sitk
def window(img):
win_min = 350
win_max = 50
for i in range(img.shape[0]):
img[i] = 255.0 * (img[i] - win_min) / (win_max - win_min)
min_index = img[i] < 0
img[i][min_index] = 0
max_index = img[i] > 255
img[i][max_index] = 255
img[i] = img[i] - img[i].min()
c = float(255) / img[i].max()
img[i] = img[i] * c
return img.astype(np.uint8)
def get_pixels_hu(ct_array,slope,intercept):
if slope != 1:
ct_array = slope*ct_array
ct_array += intercept
return ct_array
PathDicom = "D:/xiangmu/CT/data/CQ500_CT/CQ500CT181 CQ500CT181/Unknown Study/CT 0.625mm"
lstFilesDCM = []
SaveRawDicom = "SaveRaw/"
reader=sitk.ImageSeriesReader()
series_IDs=sitk.ImageSeriesReader.GetGDCMSeriesIDs(PathDicom)
nb_series=len(series_IDs)
series_file_names=sitk.ImageSeriesReader.GetGDCMSeriesFileNames(PathDicom,series_IDs[0])
reader.SetFileNames(series_file_names)
image=reader.Execute()
sitk_median = sitk.MedianImageFilter()
sitk_median.SetRadius(2)
image = sitk_median.Execute(image)
print('before:',image)
resample=sitk.ResampleImageFilter(
在VTK中,颜色映射的过程是由映射器mapper完成的。最终该标量值映射为何种颜色,还需要看颜色查询表中颜色的分配情况。如果不手动创建一个查询表,则映射器会使用一个默认的映射表。
我们可以手动创建一个颜色查找表,颜色查找表中允许我们自由设定颜色值。vtkLookupTable可以帮助我们来完成这个工作。
//定义一个颜色查找表
vtkLookupTable *lut=vtkLookupTable:...
python-vtk做
医学
nii格式的
三维重建
课题的开始关于多层
面
三维重建
(
医学
影像+工业
CT
)使用vtk-Python完成腹部nii数据的
三维重建
与人机交互
课题的开始
导师给定了一个课题–《
医学
影像
CT
的
三维重建
》,一脸蒙蔽了么,因为实验室的主流技术还是深度学习做
医学
影像和自然
图像
的处理(2D),从来没有做过三维的东西。但是没有办法,抱着试一试的心态,开始查阅相关文献。首先说明,主流的
三维重建
...
Java
医学
CT
图像
三维重建
代码
需要很高的技术水平和大量的专业知识。首先,需要了解
CT
扫描的原理和数据格式,然后使用Java编程语言对数据进行读取和处理。接着,可以使用
图像
处理技术如滤波、分割等对
图像
进行处理,最终对
体
数据进行
三维重建
。
在Java中,可以使用开源的工具包如ImageJ和ITK进行
图像
处理,当然也可以自行编写算法。这里着重介绍ITK工具包的使用。
ITK是一个用于处理
医学
图像
的开源库,提供了丰富的
图像
处理算法和工具。首先,需要将
CT
图像
数据转换为ITK格式,可以使用ITK提供的工具对数据进行转换。然后,可以使用ITK的
体
绘制
算法对
体
数据进行
三维重建
,可以选择不同的算法进行
体
绘制
,如marching cubes等。
在处理
医学
图像
时,需要考虑到数据的精度和准确性,因此在编写
代码
时需要十分谨慎和严谨。此外,还需要考虑到程序的效率和稳定性,因此需要对
代码
进行不断优化和测试。
总之,Java
医学
CT
图像
三维重建
代码
需要对
医学
知识和
图像
处理技术都有深入了解和掌握,并在实践中不断积累经验和优化
代码
才能取得良好的效果。