免费模板样机素材网站,wordpress 缓慢,锦州做网站公司哪家好,河北省建设厅网站首页【Segment Anything Model】做分割的专栏链接#xff0c;欢迎来学习。 【博主微信】cvxiayixiao 本专栏为公开数据集的介绍和预处理#xff0c;持续更新中。 要是只想把Promise12数据集的raw形式分割为png形式#xff0c;快速导航#xff0c;直接看2#xff0c;4标题即可 … 【Segment Anything Model】做分割的专栏链接欢迎来学习。 【博主微信】cvxiayixiao 本专栏为公开数据集的介绍和预处理持续更新中。 要是只想把Promise12数据集的raw形式分割为png形式快速导航直接看24标题即可 这里只处理了test 换个路径在走一边train就行 是一样的 文章目录 1️⃣Promise12数据集介绍介绍临床意义Promise12数据集特点源文件样图 2️⃣下载Promise12数据集3️⃣python读取一张Promise12数据集并展示使用 Python 的 zipfile 模块来访问 ZIP 文件注意 ⚠️ ⚠️⚠️提取第一个rawpython读取rawpython读取分割切片结果 4️⃣python处理整个Promise12数据集1. 数据集下载到本地之后先将zip解压2. 处理解压之后的数据集将raw转为png3. 将所有png图像分为image文件夹和label文件夹 5️⃣Promise12数据集官方给的评价指标 1️⃣Promise12数据集介绍
介绍
数据集来源一个比赛Prostate MR Image Segmentation 2012。是一个广泛用于前列腺磁共振成像(MRI)分割的数据集。 这个数据集最初是在2012年的MICCAI Prostate MR Image Segmentation’挑战赛中使用的目标是比较用于前列腺MRI的交互式和(半)自动分割算法。可以下载。官网 下载地址在 Download里面
临床意义
前列腺在MR图像上的分割在临床上尤为重要因为它可以帮助确定前列腺的体积这对于评估前列腺疾病预测前列腺癌的病理阶段了解预后并帮助预测治疗反应都极为重要。
前列腺的大小形状以及相对于相邻器官的位置的信息是进行前列腺切除手术放射治疗以及新兴的微创疗法如冷冻治疗和高强度聚焦超声的手术规划的重要组成部分。Promise12数据集可以为这些应用提供关键的、精确的前列腺分割信息。
Promise12数据集特点
这个数据集的特点包括
多中心多数据供应商 数据集中的图像来自多个不同的医疗中心和机构使其可以覆盖和代表各种不同的病例和设备来源。
训练和测试数据数据集提供训练和测试数据均有相应的真实分割ground truth作为参考。
算法比较和评估提交的结果会被自动评估并与参考标准进行比较从而可以直观地比较和评价不同的分割算法的性能。
这些特性使Promise12成为了前列腺MRI分割任务的重要基准数据集。研究者通过使用这个数据集来训练并评估他们的前列腺分割算法。
源文件样图 2️⃣下载Promise12数据集
官网有三个包可以下载 livechallenge_test_data中的结构如下。这是比赛之后官网验证的数据集比赛中不可见是测试部分。 每个样本由4个文件组成分别是原始img的mhd分割img的mhd。原始img的raw 分割img的raw MHD和RAW是常用于医学图像处理和存储的文件格式。 MHD用于存储医学图像数据和相关的元数据信息。MHD文件通常是一个文本文件其中包含图像数据的描述信息例如图像的维度、像素类型、像素间距、数据存储顺序等。MHD文件本身并不包含图像数据而是引用一个相应的RAW文件来存储实际的图像数据。RAW文件则是包含原始图像数据的二进制文件。它通常与MHD文件配套使用用于存储实际的图像像素值。RAW文件中的数据可以是未经处理的原始像素值例如灰度值或颜色值具体取决于图像的类型和采集设备。 test_data是提供给参赛人员的测试样本结构一样。 training_data训练数据也一样
3️⃣python读取一张Promise12数据集并展示
使用 Python 的 zipfile 模块来访问 ZIP 文件
import zipfile
import os
import SimpleITK as sitk
import matplotlib.pyplot as plt
# 设置文件的路径
zip_file_path F:\BaiduNetdiskDownload\promise12\\test_data.zip
#
# 检查文件是否存在
if os.path.exists(zip_file_path):with zipfile.ZipFile(zip_file_path, r) as zip_ref:# 获取 ZIP 文件中的文件列表file_list zip_ref.namelist()# 选取第一个文件或任意一个文件作为样本来展示sample_file file_list[0] if file_list else None# 如果找到样本文件则读取并展示其内容if sample_file:# 提取样本文件到当前目录或其他指定目录zip_ref.extract(sample_file, ./extract/)print(f样本文件 {sample_file} 已提取。)else:print(ZIP 文件中没有找到任何文件。)
else:print(f文件路径 {zip_file_path} 不存在。)运行结果为 打开mhd文件就是此图像的成像描述
注意 ⚠️ ⚠️⚠️
文件关联问题.mhd 文件应包含指向 .raw 文件的引用。也就是上图中的最后一行 一定确保 .mhd 文件中的路径指向 .raw 文件是正确的并且 .raw 文件位于指定的位置。一定确保同时有 .mhd 和 .raw 文件。
提取第一个raw
刚才的代码提取了第一个mhd文件为了保证文件关联性mhd 文件要指向 .raw 文件的引用。所以现在提取第一个raw文件才能展示出图像。 上面代码这个改成1就好了 此代码的运行效果就是 提取到了mhd和raw到同一文件夹里面
python读取raw
虽说图像信息保存在了raw里面但其实读取的是mhd文件mhd文件里面有raw文件的引用 读取代码如下
import zipfile
import os
import SimpleITK as sitk
import matplotlib.pyplot as plt
# 设置文件的路径
zip_file_path F:\BaiduNetdiskDownload\promise12\\test_data.zip
#
# 检查文件是否存在
if os.path.exists(zip_file_path):with zipfile.ZipFile(zip_file_path, r) as zip_ref:# 获取 ZIP 文件中的文件列表file_list zip_ref.namelist()# 选取第一个文件或任意一个文件作为样本来展示sample_file file_list[1] if file_list else None# 如果找到样本文件则读取并展示其内容if sample_file:# 提取样本文件到当前目录或其他指定目录image_file ./extract/ sample_filezip_ref.extract(sample_file, ./extract/)image sitk.ReadImage(./extract/Case00.mhd)# 将 SimpleITK 图像转换为 NumPy 数组image_array sitk.GetArrayFromImage(image)# 选择一个切片来展示slice_index 0 # 你可以选择不同的切片索引selected_slice image_array[slice_index]# 使用 matplotlib 展示图像切片plt.imshow(selected_slice, cmapgray)plt.axis(off) # 不显示坐标轴plt.show()print(f样本文件 {sample_file} 已提取。)else:print(ZIP 文件中没有找到任何文件。)
else:print(f文件路径 {zip_file_path} 不存在。)
效果如下
python读取分割切片结果
先用 Python 的 zipfile 模块来访问 ZIP 文件的代码把34切片的mhd和raw读取到extract文件夹里面 这个过程和第一个代码一样就是改一下数字
import zipfile
import os
import SimpleITK as sitk
import matplotlib.pyplot as plt
# 设置文件的路径
zip_file_path F:\BaiduNetdiskDownload\promise12\\test_data.zip
#
# 检查文件是否存在
if os.path.exists(zip_file_path):with zipfile.ZipFile(zip_file_path, r) as zip_ref:# 获取 ZIP 文件中的文件列表file_list zip_ref.namelist()# 选取第一个文件或任意一个文件作为样本来展示sample_file file_list[3] if file_list else None# 如果找到样本文件则读取并展示其内容if sample_file:# 提取样本文件到当前目录或其他指定目录zip_ref.extract(sample_file, ./extract/)# image sitk.ReadImage(./extract/Case00_segmentation.mhd)# # 将 SimpleITK 图像转换为 NumPy 数组# image_array sitk.GetArrayFromImage(image)# # 选择一个切片来展示# slice_index 9 # 你可以选择不同的切片索引# selected_slice image_array[slice_index]# # 使用 matplotlib 展示图像切片# plt.imshow(selected_slice, cmapgray)# plt.axis(off) # 不显示坐标轴# plt.show()print(f样本文件 {sample_file} 已提取。)else:print(ZIP 文件中没有找到任何文件。)
else:print(f文件路径 {zip_file_path} 不存在。)
sample_file file_list[3] if file_list else None这一行先改成2在改成3. 这样就能把34切片的mhd和raw读取到extract文件夹里面 之后运行下面的代码就能读取到分割结果的切片
import zipfile
import os
import SimpleITK as sitk
import matplotlib.pyplot as plt
# 设置文件的路径
zip_file_path F:\BaiduNetdiskDownload\promise12\\test_data.zip
#
# 检查文件是否存在
if os.path.exists(zip_file_path):with zipfile.ZipFile(zip_file_path, r) as zip_ref:# 获取 ZIP 文件中的文件列表file_list zip_ref.namelist()# 选取第一个文件或任意一个文件作为样本来展示sample_file file_list[3] if file_list else None# 如果找到样本文件则读取并展示其内容if sample_file:# 提取样本文件到当前目录或其他指定目录zip_ref.extract(sample_file, ./extract/)image sitk.ReadImage(./extract/Case00_segmentation.mhd)# 将 SimpleITK 图像转换为 NumPy 数组image_array sitk.GetArrayFromImage(image)# 选择一个切片来展示slice_index 9 # 你可以选择不同的切片索引selected_slice image_array[slice_index]# 使用 matplotlib 展示图像切片plt.imshow(selected_slice, cmapgray)plt.axis(off) # 不显示坐标轴plt.show()print(f样本文件 {sample_file} 已提取。)else:print(ZIP 文件中没有找到任何文件。)
else:print(f文件路径 {zip_file_path} 不存在。) 4️⃣python处理整个Promise12数据集 以上我们完成的是使用python读取到了一张原图和一张分割结果的示例图以下我们要做的是使用python处理数据集把她分为网络接受的图片。这里处理成png1. 数据集下载到本地之后先将zip解压
import zipfile
import os
import SimpleITK as sitk
import matplotlib.pyplot as plt
# 设置文件的路径
zip_file_path F:\BaiduNetdiskDownload\promise12\\test_data.zip
#
# 检查文件是否存在
if os.path.exists(zip_file_path):with zipfile.ZipFile(zip_file_path, r) as zip_ref:# 获取 ZIP 文件中的文件列表file_list zip_ref.namelist()# 选取第一个文件或任意一个文件作为样本来展示for i in file_list:zip_ref.extract(i, ./extract/)2. 处理解压之后的数据集将raw转为png
import SimpleITK as sitk
import numpy as np
import imageio
import osdef convert_raw_to_png(raw_folder, output_folder):for file in os.listdir(raw_folder):if file.endswith(.mhd):image_path os.path.join(raw_folder, file)image sitk.ReadImage(image_path)array sitk.GetArrayFromImage(image)for i, slice in enumerate(array):slice_min slice.min()slice_max slice.max()slice_normalized ((slice - slice_min) / (slice_max - slice_min) * 255).astype(np.uint8)fileos.path.splitext(file)[0]output_path os.path.join(output_folder, f{file}_{i}.png)imageio.imwrite(output_path, slice_normalized)raw_folder ./extract
output_folder ./png_images
os.makedirs(output_folder, exist_okTrue)
convert_raw_to_png(raw_folder, output_folder) 3. 将所有png图像分为image文件夹和label文件夹
此时的图像都是混在一起的一个名字对应一个原图和分割结果我们把它分开在两个文件夹更有利于构建dataset和dataloader
先把png_images文件夹里面的segmentation全部复制到label文件夹里面 在将png_images文件里里面的segmentation删除
import shutil
import os
path./png_images
new_folder./label
os.makedirs(new_folder, exist_okTrue)
for i in os.listdir(path):if segmentation in i:ori_seg_pathos.path.join(path,i)seg_pathos.path.join(new_folder,i)# 复制文件shutil.copy2(ori_seg_path, seg_path)# 删除混在一起的os.remove(ori_seg_path) 5️⃣Promise12数据集官方给的评价指标
Dice相似系数 (Dice Similarity Coefficient, DSC): 常用评价指标用于量化分割结果与真实标签之间的重叠度。Dice系数的值范围从0到1值越高表示分割结果与真实情况的一致性越好。 敏感度 (Sensitivity) 或 真正率 (True Positive Rate, TPR): 衡量了分割算法正确识别出正类即前列腺组织的能力。 特异性 (Specificity) 或 真负率 (True Negative Rate, TNR): 评估了分割算法正确识别出负类即非前列腺组织的能力。 Hausdorff距离 (Hausdorff Distance): 这是一个几何度量用于衡量预测边界与真实边界之间的最大不一致性。 平均表面距离 (Average Surface Distance, ASD): 用于计算预测边界与真实边界之间的平均距离也是一个评估分割精度的重要指标。 体积重叠误差 (Volume Overlap Error, VOE): 评估分割体积与真实体积之间的重叠程度。 文章转载自: http://www.morning.jydhl.cn.gov.cn.jydhl.cn http://www.morning.qczjc.cn.gov.cn.qczjc.cn http://www.morning.qyfqx.cn.gov.cn.qyfqx.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn http://www.morning.gpcy.cn.gov.cn.gpcy.cn http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.plznfnh.cn.gov.cn.plznfnh.cn http://www.morning.nlkm.cn.gov.cn.nlkm.cn http://www.morning.rkyw.cn.gov.cn.rkyw.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.rdxp.cn.gov.cn.rdxp.cn http://www.morning.bxfy.cn.gov.cn.bxfy.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn http://www.morning.qhrdx.cn.gov.cn.qhrdx.cn http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.fkgcd.cn.gov.cn.fkgcd.cn http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.njdtq.cn.gov.cn.njdtq.cn http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.ljdjn.cn.gov.cn.ljdjn.cn http://www.morning.rnzgf.cn.gov.cn.rnzgf.cn http://www.morning.wfzlt.cn.gov.cn.wfzlt.cn http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.qhvah.cn.gov.cn.qhvah.cn http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn http://www.morning.jwfqq.cn.gov.cn.jwfqq.cn http://www.morning.hrydl.cn.gov.cn.hrydl.cn http://www.morning.pwlxy.cn.gov.cn.pwlxy.cn http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.nqlx.cn.gov.cn.nqlx.cn http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn http://www.morning.duckgpt.cn.gov.cn.duckgpt.cn http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.ymqfx.cn.gov.cn.ymqfx.cn http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn http://www.morning.czzpm.cn.gov.cn.czzpm.cn http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn http://www.morning.skcmt.cn.gov.cn.skcmt.cn http://www.morning.mdlqf.cn.gov.cn.mdlqf.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.ltpph.cn.gov.cn.ltpph.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.wmmtl.cn.gov.cn.wmmtl.cn http://www.morning.znnsk.cn.gov.cn.znnsk.cn http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn http://www.morning.wcczg.cn.gov.cn.wcczg.cn http://www.morning.bftr.cn.gov.cn.bftr.cn http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn http://www.morning.grxsc.cn.gov.cn.grxsc.cn http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn http://www.morning.lsfzq.cn.gov.cn.lsfzq.cn http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.kabaifu.com.gov.cn.kabaifu.com http://www.morning.lnckq.cn.gov.cn.lnckq.cn http://www.morning.qkqzm.cn.gov.cn.qkqzm.cn http://www.morning.drrt.cn.gov.cn.drrt.cn http://www.morning.hpkr.cn.gov.cn.hpkr.cn http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn http://www.morning.zntf.cn.gov.cn.zntf.cn http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn http://www.morning.kjfsd.cn.gov.cn.kjfsd.cn http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn http://www.morning.snrhg.cn.gov.cn.snrhg.cn http://www.morning.kkdbz.cn.gov.cn.kkdbz.cn http://www.morning.rsszk.cn.gov.cn.rsszk.cn