unet分割如何取其中一类_深度学习与医学图像处理 案例学习1——Unet肺部分割(CT图像)...

本文通过Keras实现Unet模型进行肺部CT图像分割,详细介绍了数据预处理、模型构建、训练过程,并展示了训练结果。讨论了 Dice 系数计算以及测试集效果优于训练集的原因。
摘要由CSDN通过智能技术生成

内容引用自https://www.kaggle.com/toregil/a-lung-u-net-in-keras?select=2d_masks.zip

#引入普通包

1 import os2 import numpy asnp3 import pandas as pd 4 import cv2 #后面用于图像放缩(插值)5 import matplotlib.pyplot asplt6 %matplotlib inline7 from sklearn.model_selection import train_test_split #将总数据集分为训练集和测试集

#引入深度学习包

fromkeras.models import Model #keras模型from keras.layers import * #keras层

fromkeras.optimizers import Adam #keras优化算法fromkeras.regularizers import l2 #l2正则化fromkeras.preprocessing.image import ImageDataGenerator #图像增强生成器

import keras.backendasKfrom keras.callbacks import LearningRateScheduler, ModelCheckpoint

#导入图像文件并图像设置为指定大小

IMAGE_LIB = '../input/2d_images/'#图片路径

MASK_LIB= '../input/2d_masks/' #掩模路径IMG_HEIGHT, IMG_WIDTH= 32, 32 #输入网络的图片大小SEED=42 #随机种子

all_images = [x for x in sorted(os.listdir(IMAGE_LIB)) if x[-4:] == '.tif'] #图片名数组(格式tif)

x_data= np.empty((len(all_images), IMG_HEIGHT, IMG_WIDTH), dtype='float32') #图片数据开辟空间for i, name inenumerate(all_images): #导入图片数据

im= cv2.imread(IMAGE_LIB + name, cv2.IMREAD_UNCHANGED).astype("int16").astype('float32') #cv2.IMREAD_UNCHANGED 包括alpha通道

im= cv2.resize(im, dsize=(IMG_WIDTH, IMG_HEIGHT), interpolation=cv2.INTER_LANCZOS4) #cv2. INTER_LANCZOS4,8x8像素邻域Lanczos插值

im= (im - np.min(im)) / (np.max(im) -np.min(im)) #归一化

x_data[i]=im

y_data= np.empty((len(all_images), IMG_HEIGHT, IMG_WIDTH), dtype='float32') #掩模数据开辟空间for i, name inenumerate(all_images): #导入掩模数据

im= cv2.imread(MASK_LIB + name, cv2.IMREAD_UNCHANGED).astype('float32')/255.

im= cv2.resize(im, dsize=(IMG_WIDTH, IMG_HEIGHT), interpolation=cv2.INTER_NEAREST) #cv2.INTE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值