2010-11-04 44 views
9

Tôi đang tìm cách sử dụng JavaScript để trích xuất và sau đó hiển thị dữ liệu hình ảnh từ tệp DICOM. Tôi đã tự hỏi nếu có ai biết về bất kỳ khuôn khổ hoặc công cụ để giúp tôi đi về việc này. Cảm ơn trước.sử dụng javascript để trích xuất/hiển thị dữ liệu hình ảnh dicom

+0

u đã tìm thấy một giải pháp – AMH

+0

Tôi cũng quan tâm đến câu hỏi này (bình chọn lên). – jap1968

+0

Vui lòng kiểm tra [this] (http://www.studyjs.com/html5/dicom.html), có thể hiển thị hình ảnh dicom 16 bit – subhfyu546754

Trả lời

4

Tệp dicom về cơ bản là tệp nhị phân có thể được phân tích cú pháp, theo như tôi lo ngại, không có khung làm việc có thể thực hiện điều đó. Tuy nhiên bạn có thể tận dụng một số tính năng HTML5 & JQuery

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

Sau đó, bạn có thể sử dụng readAsBinaryString chức năng để lấy dữ liệu Dicom và thực hiện một phân tích cú pháp để phân tích nó. Tuy nhiên, phần cuối cùng có thể là một số rắc rối vì bạn sẽ phải thực hiện toàn bộ đặc tả dicom.

Sau đó, bạn có thể lấy PixelData (7FE0,0010) và hiển thị chúng trên <canvas>. Chỉ có vấn đề ở đây có thể là các tệp dicom có ​​kích thước khá lớn. Vì vậy, tôi không chắc nó sẽ nhanh như thế nào. Như Nico đã nêu trong nhận xét, bạn có thể cần phải thực hiện chuyển đổi trên PixelData vì trình duyệt không phải lúc nào cũng hiểu mã byte bên trong (điều này chắc chắn là trường hợp bạn sử dụng ví dụ về bộ dữ liệu CT)

+4

Điều này có thể hoạt động miễn là dữ liệu pixel ở định dạng mà trình duyệt sẽ hiểu. Nếu dữ liệu pixel là ví dụ trong JPEG2000, bạn sẽ cần một plugin đặc biệt để xử lý nội dung. – Nico

+0

Vâng, đó là sự thật. Tôi quên thêm điều đó. –

2

Tôi nghĩ 'HTML5' là giải pháp tốt nhất. Canvas, FileAPI (readAsArrayBuffer), TypedArray làm cho nó có thể hiển thị chính xác DICOM Image.

Hãy thử những điều sau trong Javascript. 1. Tạo đối tượng 'FileReader'. 2. Gọi phương thức 'readAsArrayBuffer' có thể đọc mảng nhị phân. 3. Tạo đối tượng 'Uint8Array' và phân tích cú pháp tiêu đề DICOM. 4. Tạo đối tượng dữ liệu hình ảnh bằng cách sử dụng phương thức canvas 'createImageData' để hiển thị hình ảnh nhị phân. 5. Đặt thuộc tính dữ liệu pixel (7FE0,0010) thành đối tượng dữ liệu hình ảnh. 6. Gọi 'putImageData' và bạn có thể hiển thị DICOM Image trong canvas.

Tôi xin lỗi vì tiếng Anh kém của tôi ... Chúc bạn may mắn!

+0

Vui lòng kiểm tra [this] (http://www.studyjs.com/html5/dicom.html), có thể hiển thị hình ảnh dicom 16 bit – subhfyu546754

1

Tôi cũng đã xem xét vấn đề này.

Giải pháp (IMHO) sẽ có thư viện có thể trích xuất các mục dữ liệu riêng lẻ từ tệp. Tiêu chuẩn DICOM là khá cụ thể về cách mỗi loại biến được định nghĩa, và thông tin đó được đưa ra trong mỗi mục dữ liệu trong tệp DICOM.

Vì vậy, phương pháp mà tôi đề nghị (và hiện đang làm việc trên) bao gồm:

1) readAsArrayBuffer

2) Đọc trong byte tiêu đề (DICM) ...

3) đọc trong các thẻ khác nhau (giữ những người mà bạn muốn)

4) đọc dữ liệu pixel (7FE0, 0010) vào một mảng

5) Tạo một bản đồ màu (vì vậy bạn có thể hiển thị hình ảnh độc đáo) - hãy nghĩ về cửa sổ CT/cấp

6) Tạo hình ảnh bằng cách sử dụng giá trị bản đồ màu cho các giá trị pixel khác nhau trong mảng.

7) Vẽ mảng trên canvas.

A.

+0

Vui lòng kiểm tra [this] (http://www.studyjs.com/html5/ dicom.html), có thể hiển thị hình ảnh dicom 16 bit – subhfyu546754

Các vấn đề liên quan