Сбой ImageReader в gdcm в приложении WPF - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь сделать 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, поэтому мне действительно любопытно, почему это происходит.

Кто-нибудь страдал в такой же ситуации?

...