import numpy as np
import nibabel as nib
from skimage import filters, measure
from stl import mesh
import trimesh
def nii_to_stl(niifile, num_points_between=10):
# 加载NIfTI文件
img = nib.load(niifile)
img_fdata = img.get_fdata()
# 获取图像的尺寸
(x, y, z) = img.shape
all_meshes = []
# 处理每个切片
for i in range(z):
slice = img_fdata[:, :, i] # 获取单个切片数据
# 将数据规范化到0-255
slice_normalized = (slice - np.min(slice)) / (np.max(slice) - np.min(slice))
slice_8bit = (255 * slice_normalized).astype(np.uint8) # 转换为8位整数
# 去噪和二值化
denoised = filters.gaussian(slice_8bit, sigma=1)
binary = denoised > filters.threshold_otsu(denoised)
#
nii格式数据通过二维方法转换成三维obj格式数据
于 2024-07-16 15:46:29 首次发布