DICOM (Digital Imaging and Communications in Medicine) ist ein internationaler Standard für medizinische Bilder und zugehörige Informationen (ISO 12052). Der folgende Artikel stellt Ihnen hauptsächlich die relevanten Informationen zum DICOM-Bildlesen durch Python vor. Lassen Sie uns gemeinsam einen Blick darauf werfen.
Einführung in DICOM
DICOM3.0-Bilder sind standardmäßige medizinische Bildgebungsbilder, die von medizinischen Bildgebungsgeräten erzeugt werden. DICOM wird häufig in der Radiologie und Medizin verwendet. Kardiologie Gefäßbildgebung sowie radiologische Diagnose- und Behandlungsdiagnosegeräte (Röntgen, CT, MRT, Ultraschall usw.) und werden zunehmend auch in anderen medizinischen Bereichen wie der Augenheilkunde und Zahnmedizin eingesetzt. Mit Zehntausenden medizinischen Bildgebungsgeräten im Einsatz ist DICOM einer der am weitesten verbreiteten Standards für medizinische Informationen. Derzeit gibt es etwa Dutzende Milliarden medizinischer Bilder, die den DICOM-Standards für den klinischen Gebrauch entsprechen. Wie liest man scheinbar mysteriöse Bilddateien? Eine gelegentliche Suche im Internet wird viele Methoden aufdecken, es fehlt jedoch eine systematischere Verwendungsmethode. Der folgende Artikel kombiniert Baidu-Informationen und Python2.7, um zu erklären, wie DICOM-Bilder gelesen und verwendet werden.
Das Lesen von DICOM-Bildern erfordert die folgenden Bibliotheken: pydicom, CV2, numpy, matplotlib. pydicom ist ein Python-spezifisches Paket, das auf die Verarbeitung von Dicom-Bildern spezialisiert ist, numpy ist ein Paket, das wissenschaftliche Berechnungen effizient durchführt, und eine Bibliothek zum Zeichnen
basierend auf Daten.pip install matplotlib
pip install opencv-python #opencv的安装,小度上基本都是要下载包,安装包后把包复制到某个文件夹下, #后来我在https://pypi.python.org/pypi/opencv-python找到这种pip的安装方法,亲测可用
pip install pydicom
pip install numpy
Im DICOM-Bild gibt es ein Wörterbuch mit patientenbezogenen Informationen. Wir können dir übergeben. Überprüfen Sie die Informationen in der DICOM-Datei und geben Sie die relevanten Werte über das Wörterbuch zurück.
#-*-coding:utf-8-*- import cv2 import numpy import dicom from matplotlib import pyplot as plt dcm = dicom.read_file("AT0001_100225002.DCM") dcm.image = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept slices = [] slices.append(dcm) img = slices[ int(len(slices)/2) ].image.copy() 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 = numpy.zeros(img.shape, numpy.uint8) for contour in contours: cv2.fillPoly(mask, [contour], 255) img[(mask > 0)] = 255 kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(2,2)) img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) img2 = slices[ int(len(slices)/2) ].image.copy() img2[(img == 0)] = -2000 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()
import dicom import json def loadFileInformation(filename): information = {} ds = dicom.read_file(filename) information['PatientID'] = ds.PatientID information['PatientName'] = ds.PatientName information['PatientBirthDate'] = ds.PatientBirthDate information['PatientSex'] = ds.PatientSex information['StudyID'] = ds.StudyID information['StudyDate'] = ds.StudyDate information['StudyTime'] = ds.StudyTime information['InstitutionName'] = ds.InstitutionName information['Manufacturer'] = ds.Manufacturer print dir(ds) print type(information) return information a=loadFileInformation('AT0001_100225002.DCM') print a
Das obige ist der detaillierte Inhalt vonTeilen von Codebeispielen zum Lesen von DICOM-Bildern in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!