如何使用 Papaya 在 JavaScript 中使用多个 DICOM 文件创建表面文件?

How can I create a surface file using multiple DICOM files in JavaScript using Papaya?

我正在尝试使用开源项目之一进行体积渲染。我想从我的 DICOM 图像创建一个表面文件。我知道这可以通过使用 mango viewer exe 来实现;但我想使用 javascript 来完成。请帮助我。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
    <link rel="stylesheet" type="text/css" href="papaya.css" />
    <script type="text/javascript" src="papaya.js"></script>
    <script type="text/javascript">
        var finalImages = [];
        var images = window.opener.imageIds;
        for (var i = 0; i < images.length; i++)
        {
            if (images[i].substr(0, 8) == "dicomweb")
            {
                temp = images[i].substr(9, images[i].length);
                //images[i] = "http:" + images[i];
                finalImages.push("http:" + temp);
            }
        }
        var params = [];
        params["images"] = [finalImages];
        params["surfaces"] = [];       
    </script>
    <title>Papaya Viewer</title>
</head>
<body>
<div class="papaya" data-params="params">
</div>
</body>
</html>

遗憾的是,Papaya 仅支持读取 表面文件(VTK、GIFTI 等)而不生成它们。

如果您想在 JavaScript 中自己完成,请查看 Marching Cubes. This is what Mango uses and I think is a common approach to converting image volume data to surface data. (See this and also this。)

创建表面数据(三角形、索引)后,您需要将其组织成 Papaya 可以读取的格式。 VTK is probably the simplest, but here's the complete list of supported formats.