1 votes

Comment convertir une échographie Voluson 4D (fichier .V00) en vidéo ?

J'ai ici une échographie "4D volume cine" (série temporelle de scans 3D) créée avec une machine de GE Healthcare Voluson . Le fichier se trouve dans leur ancien système propriétaire .V00 format.

Je souhaite créer un fichier vidéo à partir de ces données, qui puisse être lu dans un lecteur multimédia normal. Comment faire, idéalement avec des outils disponibles gratuitement ?

3voto

peterjwest Points 1276

.V00 Les fichiers sont au format "Kretzfile" / "Kretz 3D Ultrasound Images" [ source ]. Le lien entre GE Healthcare et Kretz est dû au fait qu'"en 2001, GE Medical Systems a racheté à Medison une participation importante dans Kretztechnik AG, et Kretztechnik AG est devenue une filiale à 100 % de GE Medical Systems" [ source ].

Vous pouvez utiliser Vue 4D . Il s'agit du logiciel PC "officiel" fourni par GE Healthcare pour ses appareils d'imagerie à ultrasons Voluson. Exemple de processus d'exportation vers une vidéo avec ce logiciel :

  1. Ouvrez le fichier dans 4D View et choisissez "File Export 4D Img. Cine Sequence ".

  2. Cochez l'option "Compression" (sauf si vous souhaitez effectuer un post-traitement à l'étape 4, n'utilisez pas la compression pour éviter de vous retrouver dans une situation d'urgence). un insecte ). Laissez le "Rapport de réduction" sur "1.00 : 1", sinon la résolution de la vidéo sera réduite.

  3. Cliquez sur "Enregistrer" pour exporter le volume 4D vers .avi format. Ce que vous obtiendrez devrait ressembler à un rediffusion en vue 4D mais sans le lettrage.

  4. Pour supprimer les énormes bordures noires de la vidéo, pour connecter plusieurs vidéos exportées et pour convertir le tout dans un petit format MP4, vous pouvez exécuter ce qui suit ffmpeg dans un Shell Linux, tout en étant dans un répertoire qui contient votre fichier exporté, non compressé. .avi et rien d'autre :

    ffmpeg \
      -i concat:"$(ls -l *.avi | awk 'BEGIN {ORS="|"} { print $9 }')" \
      -filter:v "crop=400:380:332:175" \
      -r 25 \
      -crf 18 \
      output.mp4

    Ceci est basé sur plusieurs autres réponses . Si vous avez avconv mais il fonctionne avec les mêmes paramètres. Il suppose un contenu de 400×380 px commençant à x=332, y=175 (c'est-à-dire à peu près centré sur une vidéo de 1068×740 px) - adaptez le paramètre crop= Si nécessaire, adapter les valeurs des paramètres à votre cas en effectuant des mesures sur un cadre dormant. -crf 18 sélectionne une qualité supérieure à la qualité par défaut -crf 23 au prix d'une taille de fichier plus importante. Je doute que l'amélioration de la qualité soit visible

  5. À des fins d'archivage, vous pourriez vouloir stocker les vidéos AVI individuelles (énormes si elles ne sont pas compressées !) dans un format sans perte ou presque, sans les concaténer, mais en supprimant la bordure noire inutile :

    for file in *.avi; do
      ffmpeg \
        -i $file \
        -c:v libx264 \
        -preset veryslow \
        -crf 1 \
        -r 25 \
        -filter:v "crop=400:380:332:175" \
        ${file/.avi/.mp4};
    done

    Cette méthode utilise H.264 avec la valeur de quantification 1 ( -crf 1 ), ce qui est très proche d'un système sans perte [ source et 25 fois plus petits que les AVI originaux non compressés. Vous pouvez également utiliser -crf 0 ou mieux -qp 0 à la place, ce qui permettra d'obtenir un format H.264 véritablement sans perte. Il est environ 20 % plus grand, et tous les lecteurs ne peuvent pas le lire [ détails ]. Mais VLC et YouTube le peuvent, par exemple.

Quelques conseils pour obtenir et installer 4D View :

  • 4D View est disponible sous la forme d'un logiciel sous licence, d'une version de démonstration sans restriction d'une durée de 60 jours et d'une version sans fonctionnalités qui n'expire pas [ voir ]. Tous semblent capables d'exporter vers .avi mais je n'ai essayé que la version de démonstration de 60 jours.
  • Les nouvelles versions de 4D View ne peuvent être téléchargées que par les propriétaires enregistrés de machines Voluson (vous devez vous inscrire et donner le numéro de série de votre machine ; mais ils feront peut-être une exception si vous leur demandez gentiment). Les versions antérieures étaient toutefois téléchargeables par le public et sont encore disponible sur le web.
  • 4D View est conçu pour Windows 7, mais peut également être installé sous Windows XP, etc.
  • 4D View ne peut pas être utilisé dans une machine virtuelle, du moins pas dans VirtualBox avec Windows XP guest (et l'accélération 3D activée). Lorsqu'on essaie de le démarrer, 4D View se plaint "No sufficient graphic card found or driver not installed" et quitte la machine.

Vous trouverez plus de détails et de contacts concernant la conversion des fichiers V00 dans le document suivant ce fil de discussion comp.protocols.dicom . Pour plus d'informations, il existe également le site Manuel d'entretien Voluson S6 / S8 . Pour les tests, voici un ouvrage difficile à trouver Numérisation 3D au format Kretzfile à télécharger, mais uniquement en 3D, ce qui ne permet pas de passer de la 4D à la 4D. .avi conversion avec 4D View.

Impossible : 4DTheFetusView . Cet outil est le même que la version 2005 de 4D View et est toujours disponible en téléchargement gratuit. Cependant, il ne peut être utilisé que pour ouvrir des volumes de démonstration partagés via sonoworld.com . Ces volumes de démonstration 4D ont été attachés à plusieurs des leurs dossiers (incl. este , este , este ) mais ne sont plus disponibles au téléchargement.

Impossible : DICOMatic . Il s'agit d'un outil de conversion téléchargeable gratuitement qui permet de convertir une multitude de formats d'imagerie médicale propriétaires au nouveau format standard. DICOM . Simplement, une version non enregistrée filigrane les images exportées [ source ]. À partir de DICOM, on peut utiliser les outils disponibles gratuitement MicroDICOM o DICOM Cine Viewer pour exporter un fichier vidéo. Cependant, pour le format GE KretzFile, DICOMatic note que "DICOM ne prend pas en charge les volumes 3D pour les images échographiques" [ source ]. Lorsque j'ai essayé d'ouvrir un fichier .V00 dans DICOMatic, j'ai obtenu une note indiquant qu'il ne prenait pas en charge les coordonnées polaires. Cela équivaut probablement à dire que les volumes 3D ne sont pas pris en charge ( ?). Donc, cela n'a pas fonctionné (pour moi), mais le fabricant dit que cela devrait fonctionner [ source ].

Impossible : TomoVision et un screengrabber. TomoVision est une visionneuse pour les formats d'images médicales, donc s'il pouvait rendre les séquences .V00, on pourrait les convertir en vidéo à l'aide d'un screengrabber. Cependant, comme il utilise la même bibliothèque que DICOMatic [ source Il ne pourra pas non plus lire le volume 4D. Bien que, là encore, le fabricant affirme que cela devrait être possible [ source ].

1voto

Andras Lasso Points 21

J'ai implémenté un lecteur d'images échographiques 3D GE/Kretz dans 3D Slicer. Après avoir chargé l'image, vous pouvez utiliser tous les outils géniaux de 3D Slicer pour la visualiser et la traiter (par exemple, pour créer un modèle imprimable en 3D). Vous pouvez voir une démo ici :

https://youtu.be/UHq0uyDvhaA

Il n'est pas encore parfait (la conversion de sphérique à cartésien n'est pas tout à fait exacte), mais il est entièrement gratuit et open-source - les corrections et les améliorations sont les bienvenues. Pour plus de détails et de questions, veuillez poster sur le forum 3D Slicer :

https://discourse.slicer.org/t/loading-of-ge-kretz-ultrasound-volumes-vol-file/808/14?u=lassoan

0voto

g.stevo Points 101

En supposant que vous avez exporté un fichier Voluson sans activer la compression (ondelette = 'Off') et avec le fichier Volume/Raw sélectionné... essayez d'utiliser ce script pour voir si vos données sont dans un format DICOM tiers. Cela ne reconstruit pas les données dans un format utilisable mais montre si vous pouvez accéder aux données de l'élément.

import struct
import sys

class GETagAnalyser(object):

def __init__(self,fname):
    self.m_fname = None
    if fname is not None:
        self.m_fname = fname
    self.m_tagdict = [] 

def readAllTags(self):
    with open(self.m_fname,'rb') as f:
        hdr = f.read(16)
        print hdr
        #find end
        f.seek(0,2)    
        fend = f.tell()
        print fend
        #back to start
        f.seek(16,0) 
        while f.tell() <= fend-4:
            t1,t2,s,tag_data,f = self.readNextTag(f)    
            #self.m_tagdict                
            print hex(t1), hex(t2),s    
            #print t1, t2, s

def readNextTag(self,f):
    firsttag = f.read(2)
    firsttag = struct.unpack('@H',firsttag)

    secondtag = f.read(2)
    secondtag = struct.unpack('@H',secondtag)

    size = f.read(4)
    size = struct.unpack('@I',size)    
    data = f.read(size[0])

    tag1,tag2,size,data = firsttag[0],secondtag[0],size[0],data
    return tag1,tag2,size,data,f

def main():

if len(sys.argv) != 2:
    print "Usage: GETagAnalyser <inputfile>"
    return
g = GETagAnalyser(sys.argv[1])
#print sys.argv[1]
g.readAllTags()

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X