>  기사  >  백엔드 개발  >  python--DICOM 이미지 연구

python--DICOM 이미지 연구

巴扎黑
巴扎黑원래의
2017-07-18 13:37:492040검색

DICOM3.0 영상은 의료영상장비에서 제작되는 표준의료영상영상으로, 방사선의학, 심혈관영상, 방사선진단 및 치료진단장비(X-ray, CT, MRI, 초음파 등)에 널리 사용되고 있습니다. 안과 및 치과에 사용되며 다른 의료 분야에서도 점점 더 널리 사용되고 있습니다. 수만 개의 의료 영상 장치가 사용되고 있는 DICOM은 가장 널리 배포된 의료 정보 표준 중 하나입니다. 현재 임상용 DICOM 표준을 준수하는 의료 이미지는 약 수백억 개에 이릅니다. image 신비로워 보이는 이미지 파일을 어떻게 읽나요? 인터넷에서 검색해 보면 다양한 방법이 나오지만, 보다 체계적인 사용 방법이 부족합니다. 다음 기사에서는 Baidu 정보와 python2.7을 결합하여 DICOM 이미지를 읽고 사용하는 방법을 설명합니다.

                                        DICOM 이미지를 읽으려면 pydicom, CV2, numpy, matplotlib 라이브러리가 필요합니다. pydicom은 dicom 이미지 처리를 전문으로 하는 Python 전용 패키지이고, numpy는 과학적 계산을 효율적으로 처리하는 패키지이며, 데이터를 기반으로 그림을 그리기 위한 라이브러리입니다.

설치:

R

1 pip install matplotlib
E

 pip install opencv-python  #opencv的安装,小度上基本都是要下载包,安装包后把包复制到某个文件夹下,
#后来我在找到这种pip的安装方法,亲测可用
EE
R
1 pip install pydicom
EE
R
1 pip install numpy
E
는 pydicom을 설치할 때 자동으로 설치됩니다.
이 라이브러리를 설치한 후 dicom 파일을 작동할 수 있습니다. 구체적으로 아래 코드를 보면

 1 #-*-coding:utf-8-*- 2 import cv2 3 import numpy 4 import dicom 5 from matplotlib import pyplot as plt 6  7 dcm = dicom.read_file("AT0001_100225002.DCM") 8 dcm.image = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept 9 10 slices = []11 slices.append(dcm)12 img = slices[ int(len(slices)/2) ].image.copy()13 ret,img = cv2.threshold(img, 90,3071, cv2.THRESH_BINARY)14 img = numpy.uint8(img)15 16 im2, contours, _ = cv2.findContours(img,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)17 mask = numpy.zeros(img.shape, numpy.uint8)18 for contour in contours:19     cv2.fillPoly(mask, [contour], 255)20 img[(mask > 0)] = 25521 22 23 kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(2,2))24 img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)25 26 27 img2 = slices[ int(len(slices)/2) ].image.copy()28 img2[(img == 0)] = -200029 30 31 plt.figure(figsize=(12, 12))32 plt.subplot(131)33 plt.imshow(slices[int(len(slices) / 2)].image, 'gray')34 plt.title('Original')35 plt.subplot(132)36 plt.imshow(img, 'gray')37 plt.title('Mask')38 plt.subplot(133)39 plt.imshow(img2, 'gray')40 plt.title('Result')41 plt.show()

DICOM 이미지에는 환자 관련 정보가 포함된 사전이 있는데 dir을 사용하면 DICOM 파일에 어떤 정보가 있는지 확인할 수 있고, 이를 통해 관련 값을 반환할 수 있습니다. 사전.

 1 import dicom 2 import json 3 def loadFileInformation(filename): 4     information = {} 5     ds = dicom.read_file(filename) 6     information['PatientID'] = ds.PatientID 7     information['PatientName'] = ds.PatientName 8     information['PatientBirthDate'] = ds.PatientBirthDate 9     information['PatientSex'] = ds.PatientSex10     information['StudyID'] = ds.StudyID11     information['StudyDate'] = ds.StudyDate12     information['StudyTime'] = ds.StudyTime13     information['InstitutionName'] = ds.InstitutionName14     information['Manufacturer'] = ds.Manufacturer15     print dir(ds)16     print type(information)17     return information18 19 a=loadFileInformation('AT0001_100225002.DCM')20 print a

위 내용은 python--DICOM 이미지 연구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.