我想从node.js中的.dcm文件(Dicom)生成缩略图。
到目前为止,我发现了一个名为dicom-parser
的节点模块,它从dcm文件中提取元数据。
我的测试用例:
var dicom = require('dicom-parser');
var fs = require('fs');
var dicomFileAsBuffer = fs.readFileSync('./FullPano.dcm');
var dataSet = dicom.parseDicom(dicomFileAsBuffer);
var pixelData = new Uint8Array(dataSet.byteArray.buffer,
dataSet.elements.x00880200.items[0].dataSet.elements.x7fe00010.dataOffset,
dataSet.elements.x00880200.items[0].dataSet.elements.x7fe00010.length);
fs.writeFileSync('test5.jpg', pixelData); // <----- not working :'(
为了帮助您调试,这里是dataSet.elements.x00880200
对象:
但像素数据存储在标签x00880200中 - &gt; x7fe00010不是标准格式,jpeg,jpg,png ......这里的想法是直接从一个文件中获取dcm图像的缩略图,在运行中,在nodejs中服务器端。
从dicom doc(见下文),标签0088,0200保存图标的数据,即缩略图。
图标图像序列
(0088,0200)
3
此图标图像代表图像。
此序列中只允许一个项目。
我来到cornerstone
图书馆:cornerstone-js
和wado-image-loader
。但是它们都没有在node.js环境中工作(创建了issue about that)。这些库可以生成&#34; main&#34; dcm的图像,但只有一个dcm文件加载到cliend端,在js中。我的要求是在nodejs中为图标/缩略图。
答案 0 :(得分:2)
如果您尝试将图片图标另存为JPG,则可能是您的问题:
只能使用单色和调色板彩色图像。每像素样本(0028,0002)的值应为1,光度解释(0028,0004)的值应为MONOCHROME 1,MONOCHROME 2或PALETTE COLOR,平面配置(0028,0006)不得出现。< SUP> Over Clause
我不熟悉node.js,但Icon Image Sequence中的数据可能不适合该调用。
另请注意,您将获得图像的可选小缩略图,而不是实际图像数据,可在“像素数据”属性(7FE0,0010)中找到。