Load Dicom image and display it - using ClearCanvas library

前端 未结 2 616
说谎
说谎 2020-12-14 13:03

This is a very narrow and specific question, but I know there are someone else out there using this, so I\'ll keep my fingers crossed and hope anyone of you pics this questi

2条回答
  •  别那么骄傲
    2020-12-14 13:30

    Ok, I've managed to show a DICOM image in a Picturebox using this code:

    Here are the assemblies I used:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using ClearCanvas.Common;
    using ClearCanvas.Dicom;
    using System.Windows.Media.Imaging;
    using ClearCanvas.ImageViewer;
    using ClearCanvas.ImageViewer.StudyManagement;
    using System.Windows.Interop;
    using System.Windows.Media;
    using System.Windows;
    using System.IO;
    

    I also had to copy these dll into bin/debug:

    BilinearInterpolation.dll (this one I could'nt reference it as assemblie so I just copied it into the bin/degug folder)

    WindowsBase.dll (This one I was able to reference it as an assemblie)

    Code (There's a button in my project that lets you select the dcm file and then show it in a picturebox)

    Private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "DICOM Files(*.*)|*.*";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                if (ofd.FileName.Length > 0)
                {
    
                    var imagen = new DicomFile(ofd.FileName); 
    
                    LocalSopDataSource DatosImagen = new LocalSopDataSource(ofd.FileName); 
    
            ImageSop imageSop = new ImageSop(DatosImagen);
    
            IPresentationImage imagen_a_mostrar = PresentationImageFactory.Create(imageSop.Frames[1]); 
    
            int width = imageSop.Frames[1].Columns; 
    
            int height = imageSop.Frames[1].Rows; 
    
            Bitmap bmp = imagen_a_mostrar.DrawToBitmap(width, height); 
    
            PictureBox1.Image = bmp; 
    
    
    
                imageOpened = true;
    
                }
                ofd.Dispose();
            }
        }
    

提交回复
热议问题