python nrrd图像转png
最近在做医学图像相关的实践,数据集图像是dicom格式的,标注是nrrd格式的图像.为了方便后期的模型搭建和训练转一下格式.python读取nrrd格式的图像需要用到pynrrd库,使用pip就可以安装:pip install pynrrd核心代码:import numpy as npimport nrrdimport osimport cv2def nrrd_to_png(nrrd_filena
·
最近在做医学图像相关的实践,数据集图像是dicom格式的,标注是nrrd格式的图像.为了方便后期的模型搭建和训练转一下格式.python读取nrrd格式的图像需要用到pynrrd库,使用pip就可以安装:
pip install pynrrd
核心代码:
import numpy as np
import nrrd
import os
import cv2
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出现了形状和itk-snap显示不一样,所以对数组做一下转置,就可以得到正确的图像了.
转置代码如下:
def rotation(path):
image = cv2.imread(path)
image = cv2.transpose(image)
# image = cv2.flip(image,1)
cv2.imwrite(path,image)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)