根据鼠标的移动位置计算CT值。
var dcmFile = DicomFile.Open(@DcmFileName);
var currdcmDataSet = dcmFile.Dataset;
int n_width = dcmImage.Width;
int n_height = dcmImage.Height;
mousePoint = Mouse.GetPosition(canvas);
Xpoint = (int)mousePoint.X;
Ypoint = (int)mousePoint.Y;
if (currdcmDataSet == null || Xpoint < 0 || Ypoint < 0 || Xpoint > n_width || Ypoint > n_height) return;
IPixelData pixelData = null;
string myModality = dcmDataSet.GetSingleValue<string>(DicomTag.Modality);
if (myModality == "CT")
{
pixelData = PixelDataFactory.Create(DicomPixelData.Create(currdcmDataSet), 0);//CTA
}
else
{
pixelData = PixelDataFactory.Create(DicomPixelData.Create(currdcmDataSet), m_ncurrentFrame);//DSA
}
if (pixelData is GrayscalePixelDataU16)
{
ushort[] pixelsushort = (ushort[])((GrayscalePixelDataU16)pixelData).Data;
CTvalue = pixelsushort[((int)Ypoint) * n_width + (int)Xpoint];
}
else if (pixelData is GrayscalePixelDataU8)
{
byte[] pixelsbyte = (byte[])((GrayscalePixelDataU8)pixelData).Data;
CTvalue = pixelsbyte[((int)Ypoint) * n_width + (int)Xpoint];
}