【9】simpleitk和OpenCV处理医学图像流程

【1】simpleitk打开,OpenCV处理

simpleitk打开dcm格式的数据,通常是一个序列,随后转换为三维数组,然后采用OpenCV处理单个界面的图形(二维操作),随后保存到三维矩阵中,最后导出三维矩阵,设置格式。


# here put the import lib


import numpy as np
import SimpleITK as sitk
import cv2
import copy


path="F:\mediacldata\dcmimage\series-000001"

#s1 载入dcm序列图像
reader = sitk.ImageSeriesReader()
dicom = reader.GetGDCMSeriesFileNames(path)
reader.SetFileNames(dicom)
image = reader.Execute()
img_array = sitk.GetArrayFromImage(image)
sitk.WriteImage(image,"01.mha")

#s2 opencv处理横断面图像(也可以采用simpleitk库处理)
for index in range(img_array.shape[0]):
    img=np.array(img_array[index,:,:],dtype=np.uint8)
    img1=cv2.equalizeHist(img)
    img_array[index,:,:]=copy.deepcopy(img1)

#s3 OpenCV处理结果保存
dcmimg= sitk.GetImageFromArray(img_array)
sitk.WriteImage(dcmimg,"equalizehist.mha")    

【2】simpleitk处理


# here put the import lib


import numpy as np
import SimpleITK as sitk
import cv2
import copy


path="F:\mediacldata\dcmimage\series-000001"

#s1 载入dcm序列图像
reader = sitk.ImageSeriesReader()
dicom = reader.GetGDCMSeriesFileNames(path)
reader.SetFileNames(dicom)
image = reader.Execute()
sitk.WriteImage(image,"01.mha")

#img_array = sitk.GetArrayFromImage(image)
#s2 opencv处理横断面图像(也可以采用simpleitk库处理)
# for index in range(img_array.shape[0]):
#     img=np.array(img_array[index,:,:],dtype=np.uint8)
#     img1=cv2.equalizeHist(img)
#     img_array[index,:,:]=copy.deepcopy(img1)

#S2 SIMPLEITK处理
binaryimg=sitk.BinaryThreshold(image,100,500,255,0)

#s3 OpenCV处理结果保存
#dcmimg= sitk.GetImageFromArray(img_array)
sitk.WriteImage(binaryimg,"equalizehist.mha")    

simpleitk函数参考:

ITK对应python中SimpleITK库的常用函数举例

官方文档

http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值