簡體   English   中英

如何從DICOM文件獲取原始心電圖數據?

[英]How to get raw ecg data from DICOM file?

我想從我擁有的dcm文件中獲取原始的心電圖數據(時間-電壓)。 我想在MATLAB中執行此操作,如果還有其他方法,請告訴我。 謝謝

以下代碼將獲取元素。 不知道值是Big Endian還是Little Endian,因此可能需要交換字節。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication51
{

    class Program
    {
        const string FILENAME = @"c:\temp\test.dcm";

        static void Main(string[] args)
        {
           new DataElement(FILENAME);
        }
    }
    public class DataElement
    {
        public static List<DataElement> elements = null;

        public UInt16 groupNumber { get; set; }
        public UInt16 elementNumber { get; set; }
        public string vr { get; set; }
        public byte[] reserved { get; set; }
        public uint length { get; set; }
        public byte[] values { get; set; }

        public DataElement() { }
        public DataElement(string filename)
        {
            elements = new List<DataElement>();

            Stream stream = File.OpenRead(filename);
            BinaryReader bReader = new BinaryReader(stream);

            long length = stream.Length;
            while (stream.Position < length)
            {
                DataElement element = new DataElement();
                elements.Add(element);

                element.groupNumber = bReader.ReadUInt16();
                element.elementNumber = bReader.ReadUInt16();
                element.vr = bReader.ReadChars(2).ToString();
                element.reserved = bReader.ReadBytes(2);
                element.length = bReader.ReadUInt32();
                element.values = bReader.ReadBytes((int)element.length);
            }
        }

    }


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM