Python对DICOM图像进行阈值分割

阅读: 评论:0

平原往事小说Python对DICOM图像进⾏阈值分割
Python对Dicom图像进⾏处理,离不开pydicom,opencv-python,matplotlib,numpy四个代码库,安装完成这四个代码库后,可以读取Dicom图像,并对图像进⾏处理,显式处理后的结果,下⾯就举例说明:
密目式安全立网import cv2
import numpy
import dicom
from matplotlib import pyplot as plt
# 读取单张Dicom图像
dcm = ad_file("../Data/vhm.420.dcm")
dcm.image = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept
# 获取图像中的像素数据
slices = []
slices.append(dcm)列车运行时刻表
# 复制Dicom图像中的像素数据
克里人img = slices[ int(len(slices)/2) ].py()
# 对图像进⾏阈值分割
ret,img = cv2.threshold(img, 90,3071, cv2.THRESH_BINARY)
img = numpy.uint8(img)
# 提取分割结果中的轮廓,并填充孔洞
im2, contours, _ = cv2.findContours(img,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
mask = s(img.shape, numpy.uint8)
选址模型>网上数码冲印for contour in contours:
cv2.fillPoly(mask, [contour], 255)
img[(mask > 0)] = 255
# 对分割结果进⾏形态学的开操作
kernel = StructuringElement(cv2.MORPH_ELLIPSE,(2,2))
img = phologyEx(img, cv2.MORPH_OPEN, kernel)
# 根据分割mask获取分割结果的像素数据
img2 = slices[ int(len(slices)/2) ].py()
img2[(img == 0)] = -2000
# 显式原始数据,mask和分割结果
plt.figure(figsize=(12, 12))
plt.subplot(131)
plt.imshow(slices[int(len(slices) / 2)].image, 'gray')
plt.title('Original')
plt.subplot(132)
plt.imshow(img, 'gray')
plt.title('Mask')
plt.subplot(133)
plt.imshow(img2, 'gray')
plt.title('Result')
plt.show()
运⾏后的结果:
本例⼦以单张Dicom图像为例,分割图像中的⾻骼信息,也可以同时读取多张Dicom图像,分割其他组织器官。

本文发布于:2023-08-16 14:02:04,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/367560.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分割   图像   结果   像素   代码   模型   数码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图