赞
踩
首先需要导入必要的库,如果没有需要安装一下
安装方法:(可以直接在控制台输入以下命令进行安装)
pip install numpy
pip install pynrrd
pip install opencv-python
pip install opencv-contrib-python
import numpy as np import nrrd import os import cv2 # nrrd_filename:读入的nrrd文件路径 # save_path:转换后的png保存路径 # patient_id:病人编号,如果没有将这个参数删去 # 如果删去patient_id参数,则函数中也要删掉这个参数 def nrrd_to_png(nrrd_filename, save_path, patient_id): nrrd_filename = nrrd_filename nrrd_data, nrrd_options = nrrd.read(nrrd_filename) h, w, slides_num = nrrd_data.shape for i in range(slides_num): img = nrrd_data[:, :, slides_num - i - 1] * 255 # img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imwrite(save_path + '/' + patient_id + '_' + str(i + 1) + '.png', img)
通过nrrd.read操作读取图像,返回值中的nrrd_data是一个numpy数组,形状是[h,w,slide_num],然后使用opencv保存一下就行了。保存以后mask出现了形状和3dslicer显示不一样,所以对数组做一下转置,就可以得到正确的图像了。
# path:上边图像的保存路径
def rotation(path):
image = cv2.imread(path)
image = cv2.transpose(image)
# image = cv2.flip(image,1)
cv2.imwrite(path, image)
具体调用过程如下:
nrrd_filename = "1_label.nrrd" # nrrd 文件的保存路径
save_path = "D:/" # 图片数据的保存文件夹
nrrd_to_png(nrrd_filename, save_path, "1")
rotation(save_path + "/1.png") # 这个是最终保存的图像
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。