Класс GetDefaultVoiLutCommand
 
            
                В этом разделе
            
            Вычисляет VOI LUT по умолчанию из изображения DICOM.
            
            
Объектная модель
Синтаксис
Пример
Вот C#/VB.NET код, который демонстрирует, как получить необработанное изображение DICOM, вычислить VOI LUT с указанным режимом, применить вычисленный VOI LUT к изображению DICOM и сохранить изображение DICOM в файл изображения.
    
	
	    
	    
''' <summary>
''' Gets raw DICOM image, calculates VOI LUT with specified mode,
''' applies calculated VOI LUT to the DICOM image,
''' saves DICOM image to an image file.
''' </summary>
''' <param name="dicomFilePath">Path to a DICOM file.</param>
''' <param name="dicomVoiLutSearchMode">The DICOM VOI LUT search mode.</param>
Public Shared Sub ConvertDicomFrameToJpegFile(dicomFilePath As String, dicomVoiLutSearchMode As Vintasoft.Imaging.ImageProcessing.VoiLutSearchMode)
    ' open DICOM file
    Using dicomFile As New Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile(dicomFilePath)
        ' if DICM file does not have frames
        If dicomFile.Pages.Count = 0 Then
            ' exit
            Return
        End If
        ' get raw DICOM image
        ' create settings for decoding DICOM image
        Dim decodingSettings As New Vintasoft.Imaging.Codecs.Decoders.DicomDecodingSettings()
        ' specify that pixel format of DICOM image should not be changed
        decodingSettings.OutputPixelFormat = Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomImagePixelFormat.Source
        ' specify that Modality LUT should not be applied to a DICOM image
        decodingSettings.ApplyModalityLut = False
        ' specify that VOI LUT should not be applied to a DICOM image
        decodingSettings.ApplyValueOfInterestLut = False
        ' specify that overlay objects should not be drawn on DICOM image
        decodingSettings.ShowOverlayImages = False
        ' get raw image of first DICOM frame
        Using rawImage As Vintasoft.Imaging.VintasoftImage = dicomFile.Pages(0).GetImage(decodingSettings, Nothing)
            ' calculate VOI LUT for raw DICOM image
            Dim getDefaultVoiLutCommand As New Vintasoft.Imaging.ImageProcessing.GetDefaultVoiLutCommand()
            getDefaultVoiLutCommand.VoiLutSearchMode = dicomVoiLutSearchMode
            getDefaultVoiLutCommand.ExecuteInPlace(rawImage)
            ' apply VOI LUT to the DICOM image
            Dim applyVoiLutCommand As New Vintasoft.Imaging.ImageProcessing.ApplyDicomImageVoiLutCommand()
            applyVoiLutCommand.VoiLut = getDefaultVoiLutCommand.ResultVoiLut
            applyVoiLutCommand.ExecuteInPlace(rawImage)
            ' save DICOM image to JPEG file
            rawImage.Save("result.jpg")
        End Using
    End Using
End Sub
	     
	 
 
    
	
	    
	    
/// <summary>
/// Gets raw DICOM image, calculates VOI LUT with specified mode,
/// applies calculated VOI LUT to the DICOM image,
/// saves DICOM image to an image file.
/// </summary>
/// <param name="dicomFilePath">Path to a DICOM file.</param>
/// <param name="dicomVoiLutSearchMode">The DICOM VOI LUT search mode.</param>
public static void ConvertDicomFrameToJpegFile(
    string dicomFilePath,
    Vintasoft.Imaging.ImageProcessing.VoiLutSearchMode dicomVoiLutSearchMode)
{
    // open DICOM file
    using (Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile dicomFile =
        new Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomFile(dicomFilePath))
    {
        // if DICM file does not have frames
        if (dicomFile.Pages.Count == 0)
            // exit
            return;
        // get raw DICOM image
        // create settings for decoding DICOM image
        Vintasoft.Imaging.Codecs.Decoders.DicomDecodingSettings decodingSettings =
            new Vintasoft.Imaging.Codecs.Decoders.DicomDecodingSettings();
        // specify that pixel format of DICOM image should not be changed
        decodingSettings.OutputPixelFormat = Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomImagePixelFormat.Source;
        // specify that Modality LUT should not be applied to a DICOM image
        decodingSettings.ApplyModalityLut = false;
        // specify that VOI LUT should not be applied to a DICOM image
        decodingSettings.ApplyValueOfInterestLut = false;
        // specify that overlay objects should not be drawn on DICOM image
        decodingSettings.ShowOverlayImages = false;
        // get raw image of first DICOM frame
        using (Vintasoft.Imaging.VintasoftImage rawImage = dicomFile.Pages[0].GetImage(decodingSettings, null))
        {
            // calculate VOI LUT for raw DICOM image
            Vintasoft.Imaging.ImageProcessing.GetDefaultVoiLutCommand getDefaultVoiLutCommand =
                new Vintasoft.Imaging.ImageProcessing.GetDefaultVoiLutCommand();
            getDefaultVoiLutCommand.VoiLutSearchMode = dicomVoiLutSearchMode;
            getDefaultVoiLutCommand.ExecuteInPlace(rawImage);
            // apply VOI LUT to the DICOM image
            Vintasoft.Imaging.ImageProcessing.ApplyDicomImageVoiLutCommand applyVoiLutCommand =
                new Vintasoft.Imaging.ImageProcessing.ApplyDicomImageVoiLutCommand();
            applyVoiLutCommand.VoiLut = getDefaultVoiLutCommand.ResultVoiLut;
            applyVoiLutCommand.ExecuteInPlace(rawImage);
            // save DICOM image to JPEG file
            rawImage.Save("result.jpg");
        }
    }
}
	     
	 
 
 
Иерархия наследования
System.Object
   Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase
      Vintasoft.Imaging.ImageProcessing.GetDefaultVoiLutCommand
 
Требования
Целевые платформы: .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
 
Смотрите также