[英]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.