医学图像的分析可以大大减轻医疗人员的负担,智能辅助医生识别医学图像中的病变或异常是现代医学发展的方向,
随着深度学习火爆,越来越多的人将目光投向深度学习,希望可以通过深度学习的方法来做图像分割等之类的问题。
做金标准是深度学习的第一步,本文讲的是最基本的东西,怎样将一幅一幅的二维图像转化为三维数据,并画金标准保存label。
个人见识浅短,有错欢迎大家指出!
下面我就按我的思路简单的介绍一下:
第一步:将jpeg转化为png
from PIL import Image
import numpy as np
import os
import glob
img_path = glob.glob(r"img/*.jpeg")#此处img是我存放jpeg图片的文件夹
print(len(img_path))
save_path = 'savepic/'#savepic是保存png图片的文件夹
for index in range(len(img_path)):
img = Image.open(img_path[index])
img_name = os.path.split(img_path[index])[1]
img_name = os.path.splitext(img_name)[0]
img.save(save_path+str(index+1)+'.png')
print(img_path[index])
第二步,将png转化为mhd文件,事先要先安装一下SimpleITK库,当然也别忘了将png图像编号,方便后面使用。python版本用的是python3.6, 直接在pip install SimpleITK就好,相当简单:另外,这部分是参考https://blog.youkuaiyun.com/weixin_43061687/article/details/82051674
依据我自己的图片做了适当修改:
import SimpleITK as sitk
import cv2
import numpy as np
import os
import glob
img = []
img1 = cv2.imread('1.png',0)
img1 = np.array(img1)
img.append(img1)
width = img1.shape[1]
height = img1.shape[0]
img_path = glob.glob(r'512_496_482/*.png')#512_496_482是存放png图片的地址,有很多张二维图片
chanel = len(img_path)
img_resize = np.zeros([chanel,height,width],dtype=np.uint8)
for i in range(chanel):
print(i)
img = cv2.imread(img_path[i],0)
img_resize[i,(height- img1.shape[0]) // 2:(height - img1.shape[0]) // 2 + img1.shape[0],
(width - img1.shape[1]) // 2:(width - img1.shape[1]) // 2 + img1.shape[1]] = img
img_resize=np.reshape(img_resize,[chanel,height, width])
mhd_data = sitk.GetImageFromArray(img_resize)
sitk.WriteImage(mhd_data, "1.mhd")
然后就将mhd文件拖到ITK snap中画金标准,保存金标准时我选择的是保存为mha文件。
最后一步,将mha转化为png,用于训练。
import cv2
import SimpleITK as sitk
import numpy as np
image = sitk.ReadImage('label.mha')
img_data = sitk.GetArrayFromImage(image)
height = img_data.shape[1]
weight = img_data.shape[2]
channel = img_data.shape[0]
savepath = 'imgtest'
for i in range(200):
img = np.zeros((height,weight), dtype=np.uint8)
img = img_data[i,:,:]*255
img = cv2.normalize(img, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8U)
cv2.imwrite(savepath+'/'+str(i+1)+'.png',img)