Lepio.  v0.1a
Visualizador de archivos Dicom.
Referencia de la Clase Lepio.Classes.DicomLoader

Clase encargada de manejar la carga de archivos Dicom. Más...

Métodos públicos

 DicomLoader (string DicomPath)
 Constructor de la clase DicomPath que carga el archivo Dicom e inicializa los tags. Más...
 
Texture2D [] LoadDicom ()
 Carga un array de texturas2D a partir de un archivo Dicom. Más...
 
double GetPixelSpacingX ()
 Get para el espacio entre pixeles de una columna y otra. Más...
 
double GetPixelSpacingY ()
 Get para el espacio entre pixeles de una fila y otra. Más...
 
double GetSpacingBetweenSlices ()
 Get para el espacio entre pixeles de una sección y otra. Más...
 
double GetSliceThickness ()
 Get para el grosor de una sección. Más...
 

Métodos privados

void RefreshTags ()
 Recarga los tags para que concuerden con los del archivo Dicom actual Más...
 
Color32 [] GenerateColors32 (int frameIndex=0)
 Genera un array de Color32 a partir de un frame del archivo Dicom Más...
 
Color32 [] GenerateColor32bits8 (int frameIndex)
 Genera un array de Color32 a partir de un archivo Dicom con 8 bits Más...
 
Color32 [] GenerateColor32bits16 (int frameIndex, bool encode)
 Genera un array de Color32 a partir de un archivo Dicom con 16 bits Más...
 
byte LinearVOILUT (double byteIn)
 Transforma el byte de entrada en un byte de salida con una VOI LUT linear basada en Window width y Window center Más...
 
byte MaskData (byte dataIn)
 Hace una mascara en el byte de entrada para quitar los bits que no son útiles Más...
 
UInt16 MaskData (UInt16 dataIn)
 Hace una mascara en el UInt16 de entrada para quitar los bits que no son útiles Más...
 
byte [][] GetFramesBytes ()
 Divide el List de bytes en un array de arrays de bytes donde cada array es un frame del archivo Dicom Más...
 
void SaveTextureAsPNG (Texture2D texture2D, string path, string index="")
 Guarda la textura como .png Más...
 
string Pad (byte b)
 Convierte un byte en un string con su representación binaria Más...
 
string Pad16 (UInt16 b)
 Convierte un UInt16 en un string con su represetación binaria Más...
 

Atributos privados

DICOMObject _DcmObject
 DICOMObject que se va a cargar Más...
 
double _pixelMax
 Valor por encima del cual en el VOILUT el pixel es blanco puro. Más...
 
double _pixelMin
 Valor por debajo del cual en el VOILUT el pixel es negro puro. Más...
 
double _wWidth
 Valor del tag anchura de la ventana (0028,1051) Más...
 
double _wCenter
 Valor del tag centro de la ventana (0028,1050) Más...
 
double _intercept
 Valor del tag ordenada en el origen (0028,1052) Más...
 
double _slope
 Valor del tag pendiente (0028,1053) Más...
 
double _pixelSpacingX
 Valor del tag espacio entre pixeles en x (0028,0030) Más...
 
double _pixelSpacingY
 Valor del tag espacio entre pixeles en y (0028,0030) Más...
 
double _sliceThickness
 Valor del tag grosor de sección (0018,0050) Más...
 
double _spacingBetweenSlices
 Valor del tag espacio entre secciones (0018,0088) Más...
 
UInt16 _rows
 Valor del tag número de filas (0028,0010) Más...
 
UInt16 _cols
 Valor del tag número de columnas (0028,0011) Más...
 
UInt16 _numberOfFrames
 Valor del tag número de secciones (0028,0008) Más...
 
UInt16 _bitsAllocated
 Valor del tag número de bits asignados (0028,0100) Más...
 
UInt16 _highBit
 Valor del tag bit más alto (0028,0102) Más...
 
UInt16 _bitsStored
 Valor del tag bits guardados (0028,0101) Más...
 
string _photometricInterpretation
 Valor del tag interpretación fotométrica (0028,0004) Más...
 
List< byte > _pixelData
 Valor del tag pixel data (7FE0,0010) Más...
 
byte [][] _rawPixelDataFrames
 Array de bytes con la información de _pixelData ya organizada. Más...
 

Descripción detallada

Clase encargada de manejar la carga de archivos Dicom.

Añade a EvilDICOM funcionalidad para Unity y permite transformar los archivos Dicom en Texturas2D.

Documentación del constructor y destructor

◆ DicomLoader()

Lepio.Classes.DicomLoader.DicomLoader ( string  DicomPath)

Constructor de la clase DicomPath que carga el archivo Dicom e inicializa los tags.

Parámetros
DicomPathRuta completa del archivo Dicom.

Documentación de las funciones miembro

◆ GenerateColor32bits16()

Color32 [] Lepio.Classes.DicomLoader.GenerateColor32bits16 ( int  frameIndex,
bool  encode 
)
private

Genera un array de Color32 a partir de un archivo Dicom con 16 bits

Parámetros
frameIndexIndice del frame que queremos cargar
encodeDecide si codificar los datos de HU en la textura o generarla con los valores reales de los pixeles. Cada variante necesita un shader específico.
Devuelve
Array de Color32 con los colores del frame correspondiente

◆ GenerateColor32bits8()

Color32 [] Lepio.Classes.DicomLoader.GenerateColor32bits8 ( int  frameIndex)
private

Genera un array de Color32 a partir de un archivo Dicom con 8 bits

Parámetros
frameIndexIndice del frame que queremos cargar
Devuelve
Array de Color32 con los colores del frame correspondiente

◆ GenerateColors32()

Color32 [] Lepio.Classes.DicomLoader.GenerateColors32 ( int  frameIndex = 0)
private

Genera un array de Color32 a partir de un frame del archivo Dicom

Parámetros
frameIndexIndice del frame que queremos cargar
Devuelve
Array de Color32 con los colores del frame correspondiente

◆ GetFramesBytes()

byte [][] Lepio.Classes.DicomLoader.GetFramesBytes ( )
private

Divide el List de bytes en un array de arrays de bytes donde cada array es un frame del archivo Dicom

Devuelve
Array de arrays de bytes que contienen los frames del archivo Dicom

◆ GetPixelSpacingX()

double Lepio.Classes.DicomLoader.GetPixelSpacingX ( )

Get para el espacio entre pixeles de una columna y otra.

Devuelve
Espacio entre pixeles de una columna y otra.

◆ GetPixelSpacingY()

double Lepio.Classes.DicomLoader.GetPixelSpacingY ( )

Get para el espacio entre pixeles de una fila y otra.

Devuelve
Espacio entre pixeles de una fila y otra

◆ GetSliceThickness()

double Lepio.Classes.DicomLoader.GetSliceThickness ( )

Get para el grosor de una sección.

Devuelve
Grosor de una sección.

◆ GetSpacingBetweenSlices()

double Lepio.Classes.DicomLoader.GetSpacingBetweenSlices ( )

Get para el espacio entre pixeles de una sección y otra.

Devuelve
Espacio entre pixeles de una sección y otra

◆ LinearVOILUT()

byte Lepio.Classes.DicomLoader.LinearVOILUT ( double  byteIn)
private

Transforma el byte de entrada en un byte de salida con una VOI LUT linear basada en Window width y Window center

Parámetros
byteInByte de entrada despues de reescalar con Intercept y Slope
Devuelve
Byte transformado mediante una VOI LUT linear

◆ LoadDicom()

Texture2D [] Lepio.Classes.DicomLoader.LoadDicom ( )

Carga un array de texturas2D a partir de un archivo Dicom.

Devuelve
Array de Texturas2D de los frames

◆ MaskData() [1/2]

byte Lepio.Classes.DicomLoader.MaskData ( byte  dataIn)
private

Hace una mascara en el byte de entrada para quitar los bits que no son útiles

Parámetros
dataInByte de entrada con el dato completo de PixelData
Devuelve
Byte sin los bits que no corresponden a la imagen

◆ MaskData() [2/2]

UInt16 Lepio.Classes.DicomLoader.MaskData ( UInt16  dataIn)
private

Hace una mascara en el UInt16 de entrada para quitar los bits que no son útiles

Parámetros
dataInUInt16 de entrada con el dato completo de PixelData
Devuelve
UInt16 sin los bits que no corresponden a la imagen

◆ Pad()

string Lepio.Classes.DicomLoader.Pad ( byte  b)
private

Convierte un byte en un string con su representación binaria

Parámetros
bByte a convertir
Devuelve
String que contiene el byte en binario

◆ Pad16()

string Lepio.Classes.DicomLoader.Pad16 ( UInt16  b)
private

Convierte un UInt16 en un string con su represetación binaria

Parámetros
bUInt16 a convertir
Devuelve
String que contiene el UInt16 en binario

◆ RefreshTags()

void Lepio.Classes.DicomLoader.RefreshTags ( )
private

Recarga los tags para que concuerden con los del archivo Dicom actual

◆ SaveTextureAsPNG()

void Lepio.Classes.DicomLoader.SaveTextureAsPNG ( Texture2D  texture2D,
string  path,
string  index = "" 
)
private

Guarda la textura como .png

Parámetros
texture2DTextura2D a guardar
pathRuta donde se guarda la imagen
indexTexto que se añade al nombre del archivo

Documentación de los datos miembro

◆ _bitsAllocated

UInt16 Lepio.Classes.DicomLoader._bitsAllocated
private

Valor del tag número de bits asignados (0028,0100)

◆ _bitsStored

UInt16 Lepio.Classes.DicomLoader._bitsStored
private

Valor del tag bits guardados (0028,0101)

◆ _cols

UInt16 Lepio.Classes.DicomLoader._cols
private

Valor del tag número de columnas (0028,0011)

◆ _DcmObject

DICOMObject Lepio.Classes.DicomLoader._DcmObject
private

DICOMObject que se va a cargar

◆ _highBit

UInt16 Lepio.Classes.DicomLoader._highBit
private

Valor del tag bit más alto (0028,0102)

◆ _intercept

double Lepio.Classes.DicomLoader._intercept
private

Valor del tag ordenada en el origen (0028,1052)

◆ _numberOfFrames

UInt16 Lepio.Classes.DicomLoader._numberOfFrames
private

Valor del tag número de secciones (0028,0008)

◆ _photometricInterpretation

string Lepio.Classes.DicomLoader._photometricInterpretation
private

Valor del tag interpretación fotométrica (0028,0004)

◆ _pixelData

List<byte> Lepio.Classes.DicomLoader._pixelData
private

Valor del tag pixel data (7FE0,0010)

◆ _pixelMax

double Lepio.Classes.DicomLoader._pixelMax
private

Valor por encima del cual en el VOILUT el pixel es blanco puro.

◆ _pixelMin

double Lepio.Classes.DicomLoader._pixelMin
private

Valor por debajo del cual en el VOILUT el pixel es negro puro.

◆ _pixelSpacingX

double Lepio.Classes.DicomLoader._pixelSpacingX
private

Valor del tag espacio entre pixeles en x (0028,0030)

◆ _pixelSpacingY

double Lepio.Classes.DicomLoader._pixelSpacingY
private

Valor del tag espacio entre pixeles en y (0028,0030)

◆ _rawPixelDataFrames

byte [][] Lepio.Classes.DicomLoader._rawPixelDataFrames
private

Array de bytes con la información de _pixelData ya organizada.

◆ _rows

UInt16 Lepio.Classes.DicomLoader._rows
private

Valor del tag número de filas (0028,0010)

◆ _sliceThickness

double Lepio.Classes.DicomLoader._sliceThickness
private

Valor del tag grosor de sección (0018,0050)

◆ _slope

double Lepio.Classes.DicomLoader._slope
private

Valor del tag pendiente (0028,1053)

◆ _spacingBetweenSlices

double Lepio.Classes.DicomLoader._spacingBetweenSlices
private

Valor del tag espacio entre secciones (0018,0088)

◆ _wCenter

double Lepio.Classes.DicomLoader._wCenter
private

Valor del tag centro de la ventana (0028,1050)

◆ _wWidth

double Lepio.Classes.DicomLoader._wWidth
private

Valor del tag anchura de la ventana (0028,1051)