[PYTHON] Que dois-je faire avec DICOM de MPEG2?

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

Que dois-je faire avec DICOM de MPEG2?
Quelle automatisation doit être effectuée en RPA, VBA, langage de programmation?
Que dois-je faire avec la structure de répertoires Python après tout?
Après tout, que dois-je utiliser pour faire des comparaisons de types en Python?
J'ai échoué lors du clustering avec k-means, mais que dois-je faire (implémentation du noyau k-means)
Que faire lorsque l'imitation est intégrée à Python
Ce que j'ai appris en Python
J'ai brièvement résumé ce que vous devez garder à l'esprit lorsque vous apprenez avec / sans professeur
Que faire avec l'installation de Magics
Que faire avec la sortie de PYTHON?
Je veux faire ○○ avec les Pandas
Travailler avec des images DICOM en Python
Python | Ce que vous pouvez faire avec Python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
FBX SDK De quelles compétences ai-je besoin pour créer un programme à l'aide de Python?
Ce que vous pouvez faire avec l'API vol.1
Que faire si vous vous perdez dans la référence de fichier avec FileNotFoundError
Que faire si vous ne pouvez pas installer avec pip dans l'environnement babun
Ce que vous pouvez faire avec des compétences en programmation
Je souhaite visualiser l'état des transferts de la J League 2020, que dois-je faire?
Vous devenez ingénieur en 100 jours - Jour 35 - Python - Ce que vous pouvez faire avec Python
Ce que j'ai fait quand je suis resté coincé dans le délai avec lambda python
Je veux faire le test de Dunnett en Python
Que faire si pipreqs aboutit à UnicodeDecodeError
[Python] Ce que j'ai fait pour faire un test unitaire
J'ai eu du mal avec le branchement conditionnel dans les modèles de Django.
[Question] Que se passe-t-il si vous utilisez% en python?
Que faire pour obtenir une feuille de calcul Google en Python
Quelle commande dois-je taper pour lister les modules actuellement disponibles comme la liste des gemmes en python?
estimation personnelle en temps réel (que dois-je faire pour éviter l'estimation d'images en dehors de la catégorie) * Échec.
Ce que j'ai fait quand j'étais en colère de le mettre avec l'option enable-shared
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Que faire si l'installation de pip échoue dans Xcode 5.1
[openpyxl] Que faire lorsque IllegalCharacterError apparaît dans pandas.DataFrame.to_excel
Je veux faire la transition avec un bouton sur le ballon
Comment faire un calcul de hachage avec Salt en Python
J'avais des ennuis parce que je ne pouvais pas pousser avec heroku
Comment faire du zéro-padding sur une ligne avec OpenCV
Liens pour faire ce que vous voulez avec Sublime Text
J'étais accro au grattage avec Selenium (+ Python) en 2020
Je veux travailler avec un robot en python.
pickle Pour lire ce qui a été fait en 2 séries avec 3 séries
Que faire si une erreur de décodage Unicode se produit dans pip
Mémo d'entrée / sortie de stockage par Python dans Azure Functions
Ce que vous ne pouvez pas faire avec hstack ou vstack avec dstack
Impossible de manipuler l'iframe dans la page avec Selenium
Notez que j'ai traité du HTML dans Beautiful Soup
Mémo de travail que j'ai essayé i18n avec l'application Flask
Ce que vous pouvez et ne pouvez pas faire avec Tensorflow 2.x
Ce que j'ai appris en participant aux qualifications ISUCON10
Je veux faire quelque chose avec Python à la fin
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
Ce que vous ne devriez pas faire dans le processus d'analyse des données de séries chronologiques (y compris la réflexion)