0
点赞
收藏
分享

微信扫一扫

python nrrd图像转png

Ewall_熊猫 2022-01-18 阅读 120

最近在做医学图像相关的实践,数据集图像是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)
举报

相关推荐

0 条评论