VintaSoft Imaging .NET SDK 15.1: Документация для .NET разработчика
Vintasoft.Imaging.Dicom.Mpr Namespace / MprImage Class
Класс MprImage
В этом разделе
Предоставляет возможность восстанавливать изображения в плоских или криволинейных плоскостях из серии 2D-DICOM-изображений.
Объектная модель
ApplyDicomImageVoiLutCommand MprImagePlanarSlice VintasoftPoint3D VintasoftVector3D VintasoftVector3D VintasoftVector3D MprImage
Синтаксис
'Declaration

Public Class MprImage

public class MprImage

Ремарки

Основные функции:


MPR (мультипланарная реконструкция) предоставляет возможность реконструировать изображения в плоских плоскостях (коронарной, сагиттальной, аксиальной или косой) и криволинейных плоскостях из серии 2D-изображений.
Изображение MPR может быть создано только из серии изображений, которая соответствует следующим требованиям:
  • плоскости всех изображений в серии должны быть параллельны
  • расстояние между соседними изображениями не должно превышать SliceIntervalMaxDelta

Изображение MPR хранит реконструированный набор данных в виде значений оттенков серого с точностью 16 бит.
Изображение MPR использует два координатных пространства:
  • Мировое пространство - трехмерная система координат, в которой указаны местоположение и направления исходных 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 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также