使用VTK.js 在网页上显示三维的DICOM 生医volume 影像的时候,会遇到数据格式转换的问题。原始的dicom序列如何转换为vtk.js使用的httpDataSet格式呢?我参考了一系列的资料,包括VTK.js 網頁顯示 DICOM 3D 生醫影像程式開發流程教學 - G. T. Wang。很感谢这个作者,本来我是没啥思路,但是看了以后基本的流程都懂了。现在主要说一下数据格式部分。转换需要借助先转换为vti格式,再通过vti格式转换为httpDataSet格式(包含了一个json格式配置和一个压缩文件)。
如何转换为vti格式?我是使用python进行的格式转换,这个部分不难,所以我就不贴详细代码了,有需要的话留言。
如何将vti转换成httpDataSet? 步骤:1.安装paraview 2.npm安装vtk.js 3.执行pvpython -dr ..\vtk-data-converter.py --input F:\vtitest\input\example.vti --out F:\vtitest\output.
详细描述:安装paraview后,进入到安装的bin目录,比如我的bin目录:C:\Program Files\ParaView 5.8.0\bin。找一下,是不是含有pvpython.exe,如果有,就行了。2.需要找到一个转换的脚本,该脚本位于vtk.js\Utilities\DataGenerator\vtk-data-conveter.py ,因此我们需要安装vtk.js.我直接打开cmd 通过npm install vtk.js安装了。安装后,去npm这个安装目录下找到这个脚本,复制这个脚本路径,后面会使用的到。3.在第一步那个bin目录下打开cmd 执行命令:
pvpython -dr vtk-data-converter.py脚本的路径 --input vti文件所在路径 --out 输出路径
例子:pvpython -dr C:\Users\ZWDX\node_modules\vtk.js\Utilities\DataGenerator\vtk-data-converter.py --input F:\vtitest\input\example.vti --out F:\vtitest\output
执行完以后。去输出路径下,可以看到生成了一个json文件和一个压缩包文件。这两个就是我们需要用到的httpDataSet数据