Я пытаюсь сделать dicom image reader
через c#/WPF
.
Вот мой код:
private gdcm.ImageReader gdcmReader;
private gdcm.Image image;
private void ViewButton_Click(object sender, RoutedEventArgs e)
{
string FileName = "Dicom file path";
this.gdcmReader = new gdcm.ImageReader(); // <----------- ***
MessageBox.Show("asdf");
this.gdcmReader.SetFileName(FileName);
gdcmReader.Read();
gdcm.Image gimage = gdcmReader.GetImage();
System.Windows.Media.PixelFormat pf = PixelFormats.Gray8;
int width = (int)gimage.GetDimension(0);
int height = (int)gimage.GetDimension(1);
int rawStride = (width * pf.BitsPerPixel + 7) / 8;
ushort[] pixel16 = new ushort[width * height];
gimage.GetArray(pixel16);
byte[] pixel8 = Array.ConvertAll(pixel16, p => (byte)(255 - p / 16));
image1.Source = BitmapSource.Create(width, height, 96, 96, pf, null, pixel8, rawStride);
}
Проблема в том, что этот кодскомпилированный без каких-либо ошибок или предупреждений, щелчок, чтобы показать изображение dicom приводит к завершению программы без каких-либо сообщений. Просто происходит сбой в секунду.
Я попытался найти, где он падает, и обнаружил, что
this.gdcmReader = new gdcm.ImageReader()
эта часть является частью сбоя.
Я думаю, что установил хорошо gdcm
до cmake
, поэтому мне действительно любопытно, почему это происходит.
Кто-нибудь страдал в такой же ситуации?