В этом разделе
Предоставляет возможность восстанавливать изображения в плоских или криволинейных плоскостях из серии 2D-изображений DICOM.
Объектная модель
Синтаксис
'Declaration
Public Class MprImage
public __gc class MprImage
public ref class MprImage
Ремарки
Основные возможности:
MPR (мультипланарная реконструкция) предоставляет возможность реконструировать изображения в плоских плоскостях (коронарной, сагиттальной, аксиальной или косой) и криволинейных плоскостях из серии 2D-изображений.
Изображение MPR может быть создано только из серии изображений, которая соответствует следующим требованиям:
- плоскости все изображения в серии должны быть параллельными
- расстояние между соседними изображениями не должно превышать SliceIntervalMaxDelta
МПР-изображение хранит реконструированный набор данных в виде значений в оттенках серого с точностью 16 бит.
МПР-изображение использует два координатных пространства:
- Мировое пространство - трехмерная система координат, в которой указываются местоположение и направления исходных изображений DICOM. В системе координат в качестве единицы измерения используются миллиметры.
- Пространство изображения MPR - трехмерная система координат, в которой местоположение и направления указываются относительно местоположения и направлений исходных изображений DICOM. В системе координат в качестве единицы измерения используются миллиметры.
- Пространство среза - двухмерная система координат, которая определяет плоский или криволинейный срез пространства изображения MPR. Система координат использует миллиметры в качестве единицы измерения. Центр системы координат соответствует местоположению среза (Location) в пространстве изображения MPR.
Пример
Вот C#/VB.NET код, который демонстрирует, как создать, инициализировать и синхронно заполнить изображение DICOM MPR.
''' <summary>
''' Creates the initialized <see cref="Vintasoft.Imaging.Dicom.Mpr.MprImage"/>
''' from <see cref="Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile"/> array.
''' </summary>
''' <param name="sourceDicomFiles">The source DICOM files.</param>
''' <returns>
''' The initialized <see cref="Vintasoft.Imaging.Dicom.Mpr.MprImage"/>.
''' </returns>
''' <exception cref="System.ArgumentNullException">Thrown if <i>sourceDicomFiles</i> is <b>null</b>.</exception>
Public Shared Function CreateInitAndSyncFill(ParamArray sourceDicomFiles As Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile()) As Vintasoft.Imaging.Dicom.Mpr.MprImage
' if source DICOM files are not specified
If sourceDicomFiles Is Nothing Then
Throw New System.ArgumentNullException()
End If
' a list of source MPR slices
Dim sourceMprSlices As New System.Collections.Generic.List(Of Vintasoft.Imaging.Dicom.Mpr.MprDicomImagePlanarSlice)()
' for each DICOM file
For Each sourceDicomFile As Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile In sourceDicomFiles
' for each DICOM frame
For Each sourceDicomFrame As Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFrame In sourceDicomFile.Pages
' create MPR slice from DICOM frame
sourceMprSlices.Add(New Vintasoft.Imaging.Dicom.Mpr.MprDicomImagePlanarSlice(sourceDicomFrame))
Next
Next
' create the MPR image
Dim mprImage As New Vintasoft.Imaging.Dicom.Mpr.MprImage()
' initialize the source data
mprImage.Initialize(sourceMprSlices.ToArray())
' fill the MPR image data synchronously
mprImage.FillDataSync()
Return mprImage
End Function
/// <summary>
/// Creates the initialized <see cref="Vintasoft.Imaging.Dicom.Mpr.MprImage"/>
/// from <see cref="Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile"/> array.
/// </summary>
/// <param name="sourceDicomFiles">The source DICOM files.</param>
/// <returns>
/// The initialized <see cref="Vintasoft.Imaging.Dicom.Mpr.MprImage"/>.
/// </returns>
/// <exception cref="System.ArgumentNullException">Thrown if <i>sourceDicomFiles</i> is <b>null</b>.</exception>
public static Vintasoft.Imaging.Dicom.Mpr.MprImage CreateInitAndSyncFill(
params Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile[] sourceDicomFiles)
{
// if source DICOM files are not specified
if (sourceDicomFiles == null)
throw new System.ArgumentNullException();
// a list of source MPR slices
System.Collections.Generic.List<Vintasoft.Imaging.Dicom.Mpr.MprDicomImagePlanarSlice> sourceMprSlices =
new System.Collections.Generic.List<Vintasoft.Imaging.Dicom.Mpr.MprDicomImagePlanarSlice>();
// for each DICOM file
foreach (Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile sourceDicomFile in sourceDicomFiles)
{
// for each DICOM frame
foreach (Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFrame sourceDicomFrame in sourceDicomFile.Pages)
{
// create MPR slice from DICOM frame
sourceMprSlices.Add(new Vintasoft.Imaging.Dicom.Mpr.MprDicomImagePlanarSlice(sourceDicomFrame));
}
}
// create the MPR image
Vintasoft.Imaging.Dicom.Mpr.MprImage mprImage = new Vintasoft.Imaging.Dicom.Mpr.MprImage();
// initialize the source data
mprImage.Initialize(sourceMprSlices.ToArray());
// fill the MPR image data synchronously
mprImage.FillDataSync();
return mprImage;
}
Иерархия наследования
System.Object
 Vintasoft.Imaging.Dicom.Mpr.MprImage
Требования
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Смотрите также