Heim  >  Artikel  >  Backend-Entwicklung  >  Teilen von Codebeispielen zum Lesen von DICOM-Bildern in Python

Teilen von Codebeispielen zum Lesen von DICOM-Bildern in Python

黄舟
黄舟Original
2017-07-17 14:40:483182Durchsuche

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.

Installation:

pip install matplotlib
pip install opencv-python #opencv的安装,小度上基本都是要下载包,安装包后把包复制到某个文件夹下,
#后来我在https://pypi.python.org/pypi/opencv-python找到这种pip的安装方法,亲测可用
Wenn Sie sich richtig erinnern, installieren Sie Bei Verwendung von pydicom wird auch numpy automatisch installiert.
pip install pydicom
pip install numpy
Nach der Installation dieser Bibliotheken können Sie Dicom-Dateien bedienen.

Einzelheiten finden Sie im folgenden Code:

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
Zusammenfassung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn