J'ai exporté la vidéo acquise par l'EPID de Linac au format dicom. Essayez d'analyser avec pydicom comme d'habitude.
import pydicom
dicom_data = pydicom.dcmread(file_name)
Puis
(0002, 0010) Transfer Syntax UID UI: MPEG2 Main Profile / Main Level
Je vois, c'est une vidéo. Comme d'habitude
array = dicom_data.pixel_array
Quand j'essaye d'obtenir le tableau de pixels avec
NotImplementedError: Unable to decode pixel data with a transfer syntax UID of '1.2.840.10008.1.2.4.100' (MPEG2 Main Profile / Main Level) as there are no pixel data handlers available that support it. Please see the pydicom documentation for information on supported transfer syntaxes
Cela ne marche pas.
Je me demandais si je pouvais l'analyser à partir de dicom_data.PixelData
, mais je me demandais s'il pouvait être analysé comme un fichier vidéo normal.
import cv2
cap = cv2.VideoCapture(file_name)
Ce n'est pas une erreur. Peux tu aller?
frames = []
while True:
ret, frame = cap.read()
if ret == True:
frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #J'ai une échelle de gris
frames.append(frame)
else:
break
Quand j'ai essayé de faire quelque chose, la liste des frames
a été créée avec succès.
Si vous appelez cela np.array (frames) .shape
(143, 576, 720)
Vous pouvez voir qu'il contient 143 images de 576 x 720.
Après cela, la première image peut être affichée sous la forme plt.imshow (np.array (frames) [0,:,:])
.
Il s'est avéré que même s'il s'agit d'un fichier dicom, il peut être analysé en utilisant opencv comme un fichier vidéo normal.
Recommended Posts