遍历给定的文件夹 使用for循环循环浏览文件夹中的每个nii文件 使用nibabel加载nii文件 从nii文件中提取数据和仿射矩阵 使用numpy获取最大面积的图层 查找最大面积图层的重心坐标 打印该坐标
时间: 2024-05-29 15:12:21 浏览: 128
NIfTI_20140122.zip_MATLAB nii读取及显示_nii文件_加载nii
import os
import numpy as np
import nibabel as nib
# 定义文件夹路径
folder_path = '/path/to/folder'
# 循环浏览文件夹中的每个nii文件
for file_name in os.listdir(folder_path):
if file_name.endswith('.nii'):
file_path = os.path.join(folder_path, file_name)
# 使用nibabel加载nii文件
nii_file = nib.load(file_path)
data = nii_file.get_fdata()
affine = nii_file.affine
# 获取最大面积的图层
max_area = 0
max_area_layer = None
for layer in range(data.shape[2]):
area = np.sum(data[:,:,layer])
if area > max_area:
max_area = area
max_area_layer = layer
# 查找最大面积图层的重心坐标
x, y = np.meshgrid(range(data.shape[0]), range(data.shape[1]))
centroid_x = np.sum(data[:,:,max_area_layer]*x)/max_area
centroid_y = np.sum(data[:,:,max_area_layer]*y)/max_area
# 打印该坐标
print('File: {}, Centroid: ({}, {})'.format(file_name, centroid_x, centroid_y))
阅读全文