Note
Go to the end to download the full example code.
Siemens Intevo Bold SPECT/CT#
import pydicom
import os
import matplotlib.pyplot as plt
import numpy as np
from toor.DetectionLayout.Modules import PETModule
from toor.DetectionLayout.Photodetectors.Crystals import GenericCrystal
from toor.Geometry.Standard import PlanarGeometry
from toor.Designer import DeviceDesignerStandalone
file_path = "C:\\Users\\pedro\\Downloads\\phase_1_challenge_data_03_05_2025\\NEMA_phantom-20250221T115435Z-001\\NEMA_phantom\\SPECT-projections\\"
file_path = os.path.join(file_path, "DICOM\\25011616\\21060000\\31702333")
ds = pydicom.dcmread(file_path)
print(ds)
Dataset.file_meta -------------------------------
(0002, 0000) File Meta Information Group Length UL: 200
(0002, 0001) File Meta Information Version OB: b'\x00\x01'
(0002, 0002) Media Storage SOP Class UID UI: Nuclear Medicine Image Storage
(0002, 0003) Media Storage SOP Instance UID UI: 1.3.12.2.1107.5.8.15.102372.30000025011616112216100000420
(0002, 0010) Transfer Syntax UID UI: Explicit VR Little Endian
(0002, 0012) Implementation Class UID UI: 1.3.12.2.1107.5.8.15.10.20090701
(0002, 0013) Implementation Version Name SH: 'syngo.via'
-------------------------------------------------
(0008, 0005) Specific Character Set CS: 'ISO_IR 100'
(0008, 0008) Image Type CS: ['ORIGINAL', 'PRIMARY', 'TOMO', 'EMISSION']
(0008, 0016) SOP Class UID UI: Nuclear Medicine Image Storage
(0008, 0018) SOP Instance UID UI: 1.3.12.2.1107.5.8.15.102372.30000025011616112216100000420
(0008, 0020) Study Date DA: '20241210'
(0008, 0021) Series Date DA: '20241210'
(0008, 0022) Acquisition Date DA: '20241210'
(0008, 0023) Content Date DA: '20241210'
(0008, 0030) Study Time TM: '101647'
(0008, 0031) Series Time TM: '133615'
(0008, 0032) Acquisition Time TM: '133615.706000'
(0008, 0033) Content Time TM: '133615'
(0008, 0050) Accession Number SH: ''
(0008, 0060) Modality CS: 'NM'
(0008, 0061) Modalities in Study CS: ['NM', 'CT', 'SR']
(0008, 0070) Manufacturer LO: 'SIEMENS NM'
(0008, 0090) Referring Physician's Name PN: ''
(0008, 1090) Manufacturer's Model Name LO: 'Encore2'
(0008, 2218) Anatomic Region Sequence 1 item(s) ----
(0008, 0100) Code Value SH: ''
(0008, 0102) Coding Scheme Designator SH: ''
(0008, 0104) Code Meaning LO: '-'
---------
(0010, 0010) Patient's Name PN: 'ACTI_QUANT_NEMA_SCAN_Phase1'
(0010, 0020) Patient ID LO: 'ACTI_QUANT_NEMA_SCAN_Phase1'
(0010, 0030) Patient's Birth Date DA: '20250116'
(0010, 0040) Patient's Sex CS: 'F'
(0010, 1010) Patient's Age AS: '035Y'
(0010, 1020) Patient's Size DS: "1.67"
(0010, 1030) Patient's Weight DS: "62.0"
(0012, 0062) Patient Identity Removed CS: 'YES'
(0012, 0063) De-identification Method LO: ['Deidentified', 'Basic Application Confidentiality Profile applied', 'Retain Longitudinal Temporal Information With Full Dates Option', 'Retain Patient Characteristics Option']
(0012, 0064) De-identification Method Code Sequence 2 item(s) ----
(0008, 0100) Code Value SH: '113106'
(0008, 0102) Coding Scheme Designator SH: 'DCM'
(0008, 0104) Code Meaning LO: 'Retain Longitudinal Temporal Information With Full Dates Option'
---------
(0008, 0100) Code Value SH: '113108'
(0008, 0102) Coding Scheme Designator SH: 'DCM'
(0008, 0104) Code Meaning LO: 'Retain Patient Characteristics Option'
---------
(0018, 0026) Intervention Drug Information Sequence 1 item(s) ----
(0018, 0028) Intervention Drug Dose DS: "0.0"
(0018, 0034) Intervention Drug Name LO: ''
(0018, 0035) Intervention Drug Start Time TM: '000000.000000'
---------
(0018, 0070) Counts Accumulated IS: None
(0018, 0071) Acquisition Termination Condition CS: 'TIME'
(0018, 1020) Software Versions LO: ['10.700.2003.1302', '10.700.1911.801', 'syngo CT VC50>Symbia Intevo 16>VB22A', 'VB22A']
(0018, 1030) Protocol Name LO: 'DeIdentified'
(0018, 1200) Date of Last Calibration DA: ['20241125', '20240404', '20240916', '20241125', '20240404']
(0018, 1201) Time of Last Calibration TM: ['153300.000000', '161358.000000', '153833.000000', '153300.000000', '161358.000000']
(0018, 5100) Patient Position CS: 'FFS'
(0020, 000d) Study Instance UID UI: 1.3.12.2.1107.5.8.15.102372.30000025011616112216100000421
(0020, 000e) Series Instance UID UI: 1.3.12.2.1107.5.8.15.102372.30000025011616112216100000422
(0020, 0010) Study ID SH: ''
(0020, 0011) Series Number IS: "1000"
(0020, 0013) Instance Number IS: "1"
(0020, 0052) Frame of Reference UID UI: 1.3.12.2.1107.5.8.15.102372.30000025011616112216100000423
(0020, 1040) Position Reference Indicator LO: 'unknown'
(0020, 1208) Number of Study Related Instances IS: "1964"
(0028, 0002) Samples per Pixel US: 1
(0028, 0004) Photometric Interpretation CS: 'MONOCHROME2'
(0028, 0008) Number of Frames IS: "720"
(0028, 0009) Frame Increment Pointer AT: [(0054, 0010), (0054, 0020), (0054, 0050), (0054, 0090)]
(0028, 0010) Rows US: 128
(0028, 0011) Columns US: 128
(0028, 0030) Pixel Spacing DS: [4.7951998710632, 4.7951998710632]
(0028, 0051) Corrected Image CS: ['UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF', 'UNIF']
(0028, 0100) Bits Allocated US: 16
(0028, 0101) Bits Stored US: 16
(0028, 0102) High Bit US: 15
(0028, 0103) Pixel Representation US: 0
(0028, 0106) Smallest Image Pixel Value US: 0
(0028, 0107) Largest Image Pixel Value US: 31
(0028, 1050) Window Center DS: "15.0"
(0028, 1051) Window Width DS: "31.0"
(0029, 0010) Private Creator LO: 'SIEMENS MEDCOM HEADER'
(0029, 0011) Private Creator LO: 'SIEMENS CSA HEADER'
(0029, 1040) [Application Header Sequence] 4 item(s) ----
(0029, 0010) Private Creator LO: 'SIEMENS MEDCOM HEADER'
(0029, 1041) [Application Header Type] CS: 'VECTORMAP'
(0029, 1042) [Application Header ID] LO: 'Header 1'
(0029, 1043) [Application Header Version] LO: '1.1'
(0029, 1044) [Application Header Info] OB: Array of 327680 elements
---------
(0029, 0010) Private Creator LO: 'SIEMENS MEDCOM HEADER'
(0029, 1041) [Application Header Type] CS: 'VECTORMAP'
(0029, 1042) [Application Header ID] LO: 'Header 2'
(0029, 1043) [Application Header Version] LO: '1.1'
(0029, 1044) [Application Header Info] OB: Array of 327680 elements
---------
(0029, 0010) Private Creator LO: 'SIEMENS MEDCOM HEADER'
(0029, 1041) [Application Header Type] CS: 'DEFLECTIONMATRIX'
(0029, 1042) [Application Header ID] LO: 'Header 1'
(0029, 1043) [Application Header Version] LO: '1.1'
(0029, 1044) [Application Header Info] OB: Array of 2880 elements
---------
(0029, 0010) Private Creator LO: 'SIEMENS MEDCOM HEADER'
(0029, 1041) [Application Header Type] CS: 'DEFLECTIONMATRIX'
(0029, 1042) [Application Header ID] LO: 'Header 2'
(0029, 1043) [Application Header Version] LO: '1.1'
(0029, 1044) [Application Header Info] OB: Array of 2880 elements
---------
(0029, 1108) [CSA Image Header Type] CS: 'NUC FLOOD'
(0029, 1109) [CSA Image Header Version] LO: '1.1'
(0029, 1110) [CSA Image Header Info] OB: Array of 786432 elements
(0033, 0010) Private Creator LO: 'SIEMENS MED NM'
(0033, 1029) [Crystal thickness] FL: [9.524999618530273, 9.524999618530273]
(0033, 1030) [Preset name used for acquisition] LO: 'WouterTESTAc225'
(0035, 0010) Private Creator LO: 'SIEMENS MED NM'
(0035, 1000) [Specialized tomo type] LO: 'None'
(0035, 1001) [Energy window type] LO: ['Photopeak', 'Scatter', 'Photopeak', 'Scatter', 'Photopeak', 'Scatter']
(0040, 0244) Performed Procedure Step Start Date DA: '20241210'
(0040, 0245) Performed Procedure Step Start Time TM: '101647.697000'
(0041, 0010) Private Creator LO: 'SIEMENS MED NM'
(0041, 1001) [Unknown] SL: 1
(0041, 1002) [Unknown] SL: 1
(0054, 0010) Energy Window Vector US: Array of 720 elements
(0054, 0011) Number of Energy Windows US: 6
(0054, 0012) Energy Window Information Sequence 6 item(s) ----
(0054, 0013) Energy Window Range Sequence 1 item(s) ----
(0054, 0014) Energy Window Lower Limit DS: "398.35800170898"
(0054, 0015) Energy Window Upper Limit DS: "486.88198852539"
---------
(0054, 0018) Energy Window Name SH: 'Window Group A'
---------
(0054, 0013) Energy Window Range Sequence 1 item(s) ----
(0054, 0014) Energy Window Lower Limit DS: "241.51960754395"
(0054, 0015) Energy Window Upper Limit DS: "398.26742553711"
---------
(0054, 0018) Energy Window Name SH: 'Window Group B'
---------
(0054, 0013) Energy Window Range Sequence 1 item(s) ----
(0054, 0014) Energy Window Lower Limit DS: "194.33699035645"
(0054, 0015) Energy Window Upper Limit DS: "237.52299499512"
---------
(0054, 0018) Energy Window Name SH: 'Window Group C'
---------
(0054, 0013) Energy Window Range Sequence 1 item(s) ----
(0054, 0014) Energy Window Lower Limit DS: "103.26010131836"
(0054, 0015) Energy Window Upper Limit DS: "193.89128112793"
---------
(0054, 0018) Energy Window Name SH: 'Window Group D'
---------
(0054, 0013) Energy Window Range Sequence 1 item(s) ----
(0054, 0014) Energy Window Lower Limit DS: "71.04125213623"
(0054, 0015) Energy Window Upper Limit DS: "91.338752746582"
---------
(0054, 0018) Energy Window Name SH: 'Window Group E'
---------
(0054, 0013) Energy Window Range Sequence 1 item(s) ----
(0054, 0014) Energy Window Lower Limit DS: "62.216251373291"
(0054, 0015) Energy Window Upper Limit DS: "70.158744812012"
---------
(0054, 0018) Energy Window Name SH: 'Window Group F'
---------
(0054, 0016) Radiopharmaceutical Information Sequence 0 item(s) ----
(0054, 0020) Detector Vector US: Array of 720 elements
(0054, 0021) Number of Detectors US: 2
(0054, 0022) Detector Information Sequence 2 item(s) ----
(0018, 1142) Radial Position DS: Array of 60 elements
(0018, 1145) Center of Rotation Offset DS: "0.0"
(0018, 1147) Field of View Shape CS: 'RECTANGLE'
(0018, 1149) Field of View Dimension(s) IS: [537, 383]
(0018, 1180) Collimator/grid Name SH: '@30419607'
(0018, 1181) Collimator Type CS: 'PARA'
(0018, 1182) Focal Distance IS: "0"
(0018, 1183) X Focus Center DS: [0, 0]
(0018, 1184) Y Focus Center DS: [0, 0]
(0020, 0032) Image Position (Patient) DS: [0, 0, 942.49519181252]
(0020, 0037) Image Orientation (Patient) DS: [1, -8.742278e-008, 0, 0, 0, -1]
(0028, 0031) Zoom Factor DS: [1, 1]
(0054, 0200) Start Angle DS: "179.85116577148"
---------
(0018, 1142) Radial Position DS: Array of 60 elements
(0018, 1145) Center of Rotation Offset DS: "0.0"
(0018, 1147) Field of View Shape CS: 'RECTANGLE'
(0018, 1149) Field of View Dimension(s) IS: [537, 383]
(0018, 1180) Collimator/grid Name SH: '@30419608'
(0018, 1181) Collimator Type CS: 'PARA'
(0018, 1182) Focal Distance IS: "0"
(0018, 1183) X Focus Center DS: [0, 0]
(0018, 1184) Y Focus Center DS: [0, 0]
(0020, 0032) Image Position (Patient) DS: [0, 0, 942.49519181252]
(0020, 0037) Image Orientation (Patient) DS: [-1, 0, 0, 0, 0, -1]
(0028, 0031) Zoom Factor DS: [1, 1]
(0054, 0200) Start Angle DS: "0.14882896840572"
---------
(0054, 0050) Rotation Vector US: Array of 720 elements
(0054, 0051) Number of Rotations US: 1
(0054, 0052) Rotation Information Sequence 1 item(s) ----
(0018, 1130) Table Height DS: "222.1"
(0018, 1131) Table Traverse DS: "831.5"
(0018, 1140) Rotation Direction CS: 'CC'
(0018, 1142) Radial Position DS: Array of 60 elements
(0018, 1143) Scan Arc DS: "180.0"
(0018, 1144) Angular Step DS: "3.0"
(0018, 1242) Actual Frame Duration IS: "60001"
(0054, 0053) Number of Frames in Rotation US: 60
(0054, 0200) Start Angle DS: "179.85116577148"
---------
(0054, 0090) Angular View Vector US: Array of 720 elements
(0054, 0202) Type of Detector Motion CS: ''
(0054, 0410) Patient Orientation Code Sequence 1 item(s) ----
(0008, 0100) Code Value SH: 'F-10450'
(0008, 0102) Coding Scheme Designator SH: '99SDM'
(0008, 0104) Code Meaning LO: 'Recumbent'
(0054, 0412) Patient Orientation Modifier Code Sequence 1 item(s) ----
(0008, 0100) Code Value SH: 'F-10340'
(0008, 0102) Coding Scheme Designator SH: '99SDM'
(0008, 0104) Code Meaning LO: 'Supine position'
---------
---------
(0054, 0414) Patient Gantry Relationship Code Sequence 1 item(s) ----
(0008, 0100) Code Value SH: 'G-5191'
(0008, 0102) Coding Scheme Designator SH: '99SDM'
(0008, 0104) Code Meaning LO: 'Feet-first'
---------
(7fe0, 0010) Pixel Data OW: Array of 23592960 elements
(7fe3, 0010) Private Creator LO: 'SIEMENS MED NM'
(7fe3, 1014) [Lowest Pixel Value in THIS Frame] OW: Array of 2880 elements
(7fe3, 1015) [Highest Pixel Value in THIS Frame] OW: Array of 2880 elements
if hasattr(ds, "PixelData"):
num_frames = getattr(ds, "NumberOfFrames", 1) # Multi-frame images
rows, cols = ds.Rows, ds.Columns
detector information sequence
detector_info = ds.DetectorInformationSequence[0]
radial_positions = detector_info.RadialPosition
FOV_shape = detector_info.FieldOfViewShape
FOV_dim = detector_info.FieldOfViewDimensions
Focal_distance = detector_info.FocalDistance
start_angle = detector_info.StartAngle
#pixel spacing
pixel_spacing = ds.PixelSpacing
# print(f"Radial Positions: {radial_positions}")
rotationVector = ds.RotationVector
rotationInformationSequence = ds.RotationInformationSequence[0]
RotationDirection = rotationInformationSequence.RotationDirection
scanArc = rotationInformationSequence.ScanArc
angularStep = rotationInformationSequence.AngularStep
# numberOfFrames = rotationInformationSequence.NumberOfFrames
# arcOfRotation = rotationVector.ScanArc
angularViewVector = np.array(ds.AngularViewVector)
detectorVector = np.array(ds.DetectorVector)
print(f"Rotation Vector: {rotationVector}")
# module_spect = SPECTHeadGeneric()
# module_.setHighEnergyLightDetectorBlock(2)
#
newDevice = PlanarGeometry(distance_between_planes=537, detector_module=PETModule)
newDevice.setDeviceName("Siemens SYmbia Intevo Bold SPEC/CT")
newDevice.setNumberOfModulesZ(1)
newDevice.setNumberOfModulesPerSide(1)
newDevice.setNumberOfModulesPhi(2)
print("Number of modules: ", newDevice.numberOfModules)
modules_ = [PETModule(i) for i in range(newDevice.numberOfModules)]
newDevice.setDetectorModule(modules_)
for i in range(newDevice.numberOfModules):
newDevice.detectorModule[i].setModuleID(i)
newDevice.detectorModule[i].updateNumberHighEnergyLightDetectors(128,128)
print("Number of high energy light detectors: ", newDevice.detectorModule[i].totalNumberHighEnergyLightDetectors)
newDevice.detectorModule[i].setModelHighEnergyLightDetectors([GenericCrystal(k) for k in
range(newDevice.detectorModule[i].totalNumberHighEnergyLightDetectors)])
for j in range(newDevice.detectorModule[i].totalNumberHighEnergyLightDetectors):
newDevice.detectorModule[i].modelHighEnergyLightDetectors[j].setCrystalID(j)
newDevice.detectorModule[i].modelHighEnergyLightDetectors[j].setCristalSize(pixel_spacing[0], pixel_spacing[0], 30)
newDevice.detectorModule[i].setReflectorThicknessX(0)
newDevice.detectorModule[i].setReflectorThicknessY(0)
newDevice.detectorModule[i].setHighEnergyLightDetectorBlock()
newDevice.calculateInitialGeometry()
designer = DeviceDesignerStandalone(device=newDevice)
designer.addDevice()
designer.startRender()
print(newDevice.getDeviceName())
Rotation Vector: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
radius: 40
Number of modules: 2
Number of high energy light detectors: 16384
Number of high energy light detectors: 16384
Adding module
<toor.DetectionLayout.Modules.PETModuleGeneric.PETModule object at 0x000002350996ADC0>
Adding module
<toor.DetectionLayout.Modules.PETModuleGeneric.PETModule object at 0x0000023500F00D60>
Siemens SYmbia Intevo Bold SPEC/CT
# Check if the file contains Pixel Data (projection images)
if hasattr(ds, "PixelData"):
pixel_array = ds.pixel_array # Convert pixel data to NumPy array
num_frames = getattr(ds, "NumberOfFrames", 1) # Check number of projection frames
print(f"Projection Data Found: {num_frames} frames of {ds.Rows}x{ds.Columns} pixels.")
# Display first few projections
num_display = min(num_frames, 10) # Show up to 6 projections
fig, axes = plt.subplots(1, num_display, figsize=(15, 5))
for i in range(num_display):
axes[i].imshow(pixel_array[i], cmap="gray")
axes[i].set_title(f"Projection {i+1}")
axes[i].axis("off")
# plt.show()
else:
print("No Pixel Data found.")

Projection Data Found: 720 frames of 128x128 pixels.
create a sinogram from the dicom information
print(pixel_array.shape)
sinogram = pixel_array[40]
# theta = np.linspace()
# image = iradon(sinogram, theta=theta, circle=True)
# plt.imshow(image, cmap='gray')/
(720, 128, 128)
Total running time of the script: (2 minutes 22.966 seconds)