Как преобразовать ультразвуковое сканирование Voluson 4D (файл.V00) в видео?
У меня есть ультразвуковое сканирование "4D Volume Cine" (временной ряд 3D-сканирования), созданное на машине от GE Healthcare Voluson. Файл в их старом, проприетарном .V00
формат.
Из этого я хочу создать видеофайл, который можно будет воспроизводить в обычном медиаплеере. Как это сделать, в идеале с помощью свободно доступных инструментов?
3 ответа
.V00
файлы имеют формат "Kretzfile" / "Kretz 3D Ultrasound Images" [ источник ]. Связь между GE Healthcare и Kretz связана с тем, что "в 2001 году GE Medical Systems приобрела крупный пакет акций Kretztechnik AG у Medison, а Kretztechnik AG стала дочерней компанией GE Medical Systems" [ источник ].
Вы можете использовать 4D View. Это "официальное" программное обеспечение для ПК, предоставляемое компанией GE Healthcare для своих ультразвуковых аппаратов Voluson. Пример процесса о том, как экспортировать в видео с ним:
- Откройте файл в 4D View и выберите "Файл → Экспорт 4D Img. Cine Sequence…".
- Отметьте опцию "Сжатие" (кроме случаев, когда вы хотите выполнить постобработку на шаге 4, не используйте сжатие, чтобы предотвратить ошибку). Оставьте "Коэффициент уменьшения" на "1,00: 1", так как иначе это уменьшит разрешение видео.
- Нажмите "Сохранить", чтобы экспортировать том 4D в
.avi
формат. То, что вы получите, должно выглядеть как воспроизведение в 4D View, просто без букв. Чтобы удалить огромные черные границы из видео, подключить несколько экспортируемых видео и преобразовать их в небольшой формат MP4, вы можете запустить следующее
ffmpeg
команда в оболочке Linux, находясь в каталоге, содержащем экспортированный, несжатый.avi
файлы и ничего больше:ffmpeg \ -i concat:"$(ls -l *.avi | awk 'BEGIN {ORS="|"} { print $9 }')" \ -filter:v "crop=400:380:332:175" \ -r 25 \ -crf 18 \ output.mp4
Это основано на нескольких других ответах. Если у вас есть
avconv
вместо этого он работает с теми же параметрами. Предполагается, что содержимое размером 400×380 пикселей начинается с x=332, y=175 (то есть примерно по центру видео 1068×740 пикселей) - адаптируйтеcrop=
Значения параметров для вашего случая, если это необходимо, путем измерения на кадре.-crf 18
выбирает более высокое качество, чем по умолчанию-crf 23
, за счет большего размера файла. Я сомневаюсь, что улучшение качества видно хотя...В целях архивирования вы можете захотеть хранить отдельные видео AVI (огромные, если они не будут сжаты!) В хорошем формате без потерь или почти без потерь, не объединяя их, но снова удаляя ненужную черную рамку:
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
При этом используется H.264 со значением квантователя 1 (
-crf 1
), что почти без потерь [ источник ] и в 25 раз меньше, чем исходные несжатые AVI. Вы также можете использовать-crf 0
или лучше-qp 0
вместо этого, что приведет к действительно без потерь H.264. Он примерно на 20% больше, и не все игроки могут его прочитать [ подробнее ]. Но VLC и YouTube могут, например.
Некоторые советы по получению и установке 4D View:
- 4D View доступен в виде лицензионного программного обеспечения, 60-дневной неограниченной демо-версии и не истекающей деактивированной версии [ см. ]. Все, кажется, способны экспортировать в
.avi
файлы, но я попробовал только с 60-дневной демонстрацией. - Более новые версии 4D View могут быть загружены только зарегистрированными владельцами машин Voluson (вам необходимо зарегистрироваться и указать серийный номер вашей машины; но, возможно, они сделают исключение, если вы любезно попросите). Однако более ранние версии были общедоступными для скачивания и все еще доступны в Интернете.
- 4D View сделан для Windows 7, но также может быть установлен в Windows XP и т. Д.
- 4D View нельзя использовать на виртуальной машине, по крайней мере, в VirtualBox с гостевым Windows XP (и с включенным 3D-ускорением). При попытке его запуска 4D View выдаст сообщение "Не найдена достаточная графическая карта или драйвер не установлен" и выйдет.
Некоторые подробности и контакты по конвертации файлов V00 можно найти в этой ветке comp.protocols.dicom. Для справочной информации есть также Руководство по обслуживанию Voluson S6 / S8. Для тестов, здесь трудно найти 3D-сканирование в формате Kretzfile для загрузки; только 3D, поэтому, не позволяя 4D-до .avi
преобразование с 4D View.
Не возможно: 4DTheFetusView. Этот инструмент аналогичен версии 4D View 2005 года и по-прежнему доступен для бесплатной загрузки. За исключением того, что он может быть использован только для открытия демонстрационных томов, доступных через http://sonoworld.com/. Эти демонстрационные тома 4D были прикреплены к нескольким из их дел (включая это, это, это), но больше не доступны для скачивания.
Не возможно: DICOMatic. Это свободно загружаемый инструмент преобразования, который может конвертировать множество патентованных форматов медицинских изображений в новый стандартный формат DICOM. Просто незарегистрированная версия водяных знаков экспортировала изображения [ источник ]. В DICOM можно использовать свободно доступные инструменты MicroDICOM или DICOM Cine Viewer для экспорта видеофайла. Однако для формата GE KretzFile DICOMatic отмечает, что "DICOM не поддерживает трехмерные тома для ультразвуковых изображений" [ источник ]. При попытке открыть файл.V00 в DICOMatic, я заметил, что он не поддерживает полярные координаты. Возможно, это равносильно тому, что 3D-тома не поддерживаются (?). Таким образом, это не сработало (для меня), но производитель говорит, что это должно работать [ источник ].
Не возможно: TomoVision и скриншот. TomoVision является средством просмотра медицинских форматов изображений, поэтому, если он может отображать последовательности.V00, его можно преобразовать в видео с помощью скриншота. Однако, поскольку он использует ту же библиотеку, что и DICOMatic [ source ], он также не сможет прочитать том 4D. Хотя, опять же, производитель заявляет, что это возможно [ источник ].
Я реализовал в 3D Slicer устройство для считывания ультразвуковых изображений GE / Kretz 3D. После загрузки изображения вы можете использовать все потрясающие инструменты в 3D Slicer для его визуализации и обработки (например, для создания 3D-модели для печати). Вы можете увидеть демо здесь:
Он еще не идеален (сферическое преобразование в декартово не совсем точно), но он абсолютно бесплатный и с открытым исходным кодом - исправления и улучшения приветствуются. Для получения дополнительной информации и вопросов, пожалуйста, отправьте сообщение на форум 3D Slicer:
https://discourse.slicer.org/t/loading-of-ge-kretz-ultrasound-volumes-vol-file/808/14?u=lassoan
Предполагая, что вы экспортировали файл Voluson без включенного сжатия (Wavelet = 'Off') и с выбранным Volume/Raw File... попробуйте использовать этот сценарий, чтобы увидеть, имеют ли ваши данные сторонний формат DICOM. Это не восстанавливает данные в пригодный для использования формат, но показывает, можете ли вы получить доступ к данным элемента.
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()