2010-11-04 2 views
9

Я ищу, чтобы использовать JavaScript для извлечения и отображения данных изображения из файла DICOM. Мне было интересно, знает ли кто-нибудь о каких-либо рамках или инструментах, которые помогут мне сделать это. Заранее спасибо.с помощью javascript для извлечения/отображения данных изображения dicom

+0

сделал и найти решение – AMH

+0

Я также заинтересован в этом вопросе (проголосовали). – jap1968

+0

Пожалуйста, проверьте [это] (http://www.studyjs.com/html5/dicom.html), можете отображать 16-разрядные изображения dicom. – subhfyu546754

ответ

4

Файл dicom в основном представляет собой двоичный файл, который может быть проанализирован, насколько я могу судить о том, что для него нет доступной структуры. Однако вы можете использовать некоторые функции HTML5 & JQuery

http://timc.idv.tw/html5-file-upload/

Затем вы можете использовать функцию readAsBinaryString для извлечения данных Dicom и сделать парсер для разбора его. Однако эта последняя часть может быть проблемой, так как вам придется реализовать всю спецификацию dicom.

Затем вы можете получить PixelData (7FE0,0010) и отобразить их на <canvas>. Только проблема здесь может заключаться в том, что файлы dicom имеют большой размер. Поэтому я не уверен, как быстро это будет. Как указано Nico в комментариях, вам может потребоваться преобразование в PixelData, потому что браузер не всегда понимает байт-код, который находится в нем (это, безусловно, тот случай, когда вы используете, например, CT-наборы данных)

+4

Это может работать до тех пор, пока данные в пикселях будут в формате, который браузер будет нести. Если данные пикселя, например, в JPEG2000, для обработки содержимого вам понадобится специальный плагин. – Nico

+0

Да, это так. Я забыл добавить это. –

2

Я думаю, что «HTML5» - лучшее решение. Canvas, FileAPI (readAsArrayBuffer), TypedArray позволяют точно отображать изображение DICOM.

Попробуйте следующее на Javascript. 1. Создайте объект FileReader. 2. Вызвать метод readAsArrayBuffer, который может читать двоичный массив. 3. Создайте объект «Uint8Array» и проанализируйте заголовок DICOM. 4. Создайте объект данных изображения, используя метод canvas 'createImageData' для отображения двоичного изображения. 5. Установите атрибут данных пикселя (7FE0,0010) в объект данных изображения. 6. Вызовите 'putImageData', и вы можете отображать изображение DICOM в холсте.

Прошу прощения за мой плохой английский ... Удачи!

+0

Пожалуйста, проверьте [это] (http://www.studyjs.com/html5/dicom.html), можете отображать 16-битные изображения dicom – subhfyu546754

1

Я также изучал эту проблему.

Решение (IMHO) должно иметь библиотеку, которая может извлекать отдельные элементы данных из файла. Стандарт DICOM довольно специфичен в отношении того, как определяется каждый тип переменной, и эта информация предоставляется в каждом элементе данных в файле DICOM.

Таким образом, метод, который я предлагаю (и я в настоящее время работает над) включает в себя:

1) readAsArrayBuffer

2) Прочитайте в байтах заголовка (Dicm) ...

3) Чтение в различных тегов (сохраняя те, которые вы хотите)

4) Считайте данные пикселя (7FE0, 0010) в массив

5) Создать цветовую карту (так что вы может хорошо отображать изображения) - подумайте о окне CT/уровне

6) Создайте изображение, используя значения цветовой карты для разных значений пикселей в массиве.

7) Нарисуйте массив на холсте.

А.

+0

Пожалуйста, проверьте [это] (http://www.studyjs.com/html5/ dicom.html), может отображать 16-битные изображения dicom – subhfyu546754