Uploaded by asnarta

Лабораторна робота

advertisement
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
ФАКУЛЬТЕТ БІОМЕДИЧНОЇ ІНЖЕНЕРІЇ
КАФЕДРА БІОЗАХИСТУ ТА БІОВІДНОВНОЇ ІНЖЕНЕРІЇ
Лабораторна робота №2
з дисципліни: Обробка медичних зображень
Тема: «Формалізація уявлень про медичні зображення»
Варіант 13
Виконав:
студент гр. БС-51с, ФБМІ
Лялька Б.О.
Перевірила:
Алхімова С.М.
Київ 2016
Завдання:
1. Вивчити теоретичні основи збереження даних у файлах формату
DICOM.
2. Завантажити зображення томографічного зрізу у форматі DICOM в
оперативну пам’ять та відобразити дані зображення у вікні програми.
3. Створити подію від клавіатури, при обробці якої поверх данних
зображення відображається текстова інформація з DICOM тегу
відповідно до варіанту:
13
ID дослідження
4. Скласти і захистити звіт по роботі.
Лістинг програми:
using
using
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Threading.Tasks;
System.Windows.Forms;
SharpGL;
SharpGL.Enumerations;
Dicom;
SharpGL.SceneGraph.Assets;
namespace cartesian_spherical
{
public partial class Form1 : Form
{
OpenGL gl;
bool flag = false;
Texture capture = new Texture(); // экземпляр текстуры
List<byte> pixels = new List<byte>();
DicomDecoder dec = new DicomDecoder();
public Form1()
{
InitializeComponent();
gl = (gl == null) ? this.openGLControl1.OpenGL : gl;
dec.DicomFileName = "DICOM_Image_for_Lab_2.dcm";
dec.GetPixels8(ref pixels);
capture.Create(gl, pixels.ToBitmap(dec.width, dec.height));
}
void openGLControl1_OpenGLDraw(object sender, RenderEventArgs args)
{
gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
gl.LoadIdentity();
if (flag) gl.DrawText(5, 290, 1, 1, 1, "Arai", 15.0f, GetProperty(dec, "Study
ID"));
gl.MatrixMode(MatrixMode.Projection);
gl.Ortho2D(-this.Width / 2, this.Width / 2, -this.Height / 2, this.Height / 2);
// двумерная проекция
gl.Enable(OpenGL.GL_TEXTURE_2D); // включение механизма текстурирования
capture.Bind(gl); // создание объекта текстуры
gl.Begin(BeginMode.Quads);
gl.TexCoord(1, 1); gl.Vertex(-128, -128); // координаты текстуры; вершины
gl.TexCoord(1, 0); gl.Vertex(128, -128);
gl.TexCoord(0, 0); gl.Vertex(128, 128);
gl.TexCoord(0, 1); gl.Vertex(-128, 128);
gl.End();
gl.Disable(OpenGL.GL_TEXTURE_2D); // выключение механизма текстурирования
gl.Flush();
}
string GetProperty(DicomDecoder dicdec, string Name)
{
foreach (var i in dicdec.dicomInfo)
{
var v = i.Split('/')[2];
var vv = v.Split(':')[0];
if (vv == Name)
{
return Name + ":" + v.Split(':')[1];
}
}
return "";
}
private void openGLControl1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 32)
{
gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
gl.LoadIdentity();
flag = (flag) ? false : true;
gl.Flush();
}
}
}
}
Результат виконання:
Висновок:
Зберігання медичних зображень потребує певної специфіки роботи з ними.
Тому щоб не розподіляти інформацію про медичне зображення та саме
зображення краще використовувати формат DICOМ, в якому воно зберігається
разом з великою кількістю тегів, шо його характеризують.
Відповіді на контрольні питання:
1. Формат DICOМ, його призначення.
DICOM (англ. Digital Imaging and Communications in Medicine) –
галузевий стандарт створення, зберігання, передачі і візуалізації медичних
зображень і документів дослідження пацієнтів.
Формат DICOМ призначенний для передачі і зберігання расторових
медичних зображень, отриманих за допомогою різних методів променевої
діагностики
(ренгенографія,
ультразвукова
діагностика,
ендоскопія,
комп'ютерна та магнітно-резонансна томографія. Стандарт DICOM узятий за
основу розробки європейського стандарту MEDICOМ. Також даний формат
даних дозволяє зберігати не тільки серії зображень, но і велику кількість
додаткової інформації про умови отримання даних зображень. Крім того в
протокол включений інтерфейс отримання і відправки цих файлів по
глобальній комп’ютерній мережі.
2. Що таке таблиця тегів? Як знайти необхідну інформацію?
Таблиця тегів – це таблиця атрибутів, в якому присвоєні номера для
кожного тега, який складається з двох полів: номера групи та номера елемента.
Кожний тег виконує певну функцію при обробці зображення. Кожен тег
описаний в таблиці стандартів Data Dictionary. DICOM використовують три
різних схеми кодування тегів. Кодування файлу помічається відповідним тегом
в тому ж файлі. Схеми отримуються із комбінації двох параметрів –
представлення даних і кодування порядку байта.
Деякі стандартні тегів: DA - Date, дата; DS - Decimal String, рядок
представляє собою десяткову дріб; FL-Floating Point Single (4 bytes), число з
плаваючою комою звичайної точності; IS - Integer String, цілочислений рядок;
UL - Unsigned Long, беззнакове подвійне слово і т.д.
3. Особливості завантаження файлів в DICOM форматі за допомогою
бібліотеки GDCM.
Масові DICOM або GDCM (первинна назва GNU DICOM ; назва була
змінена на прохання для інтеграції в ІТК) - є крос-платформної бібліотеки,
написаної на C + + для DICOM медичної файлів.
Для того, щоб зчитати інформацію з файлу DICOM з допомогою
бібліотеки GDCМ, перш за все необхідно завантажити файл у відповідну
файлову структуру бібліотеки. Під час завантаження слід перевірити, що
бібліотека GDCM підтримує формат необхідного користувачу файлу.
4. Як завантажити піксельні дані DICOM файлу в оперативну
пам'ять?
Для завантаження піксельних даних DICOM файлу в оперативну пам'ять
необхідно створити структуру бібліотеки File Helper:
gdcm::FileHelper * fh = gdcm::FileHelper::New (f);
Після цього можна завантажувати піксельні дані зображення:
void *imageData = fh -> GetImageDataRaw ();
uint32_t dataSize = fh ->GetImageDataRawSize ();
За допомогою бібліотеки можна також визначати розмір даних одного
пікселя зображення та типу цих зображень.
5. Чи можна зберігати дані типу з рухомою крапкою в файлах
формату DICOM?
Дані типу з рухомою крапкою в файлах формату DICOM можна
зберігати. Формат DICOM підтримують пристрої УЗД.
Для отримання одно або двовимірних медичних зображень можна
використовувати:
електромагнітне випромінювання;
ультразвук.
Методами отримання двовимірних медичних зображень є:
цифрова радіологія;
комп'ютерна томографія;
ядерний магнітний резонанс;
2D-ультразвук.
Методами й джерелами тривимірних зображень є:
послідовність радіологічних зображень або томографічне зображення
динамічного об'єкта;
об’ємне томографічне зображення частини нерухомого об'єкта
Download