问题标签 [gdcm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1359 浏览

c++ - 使用 GDCM 生成简单的 CT DICOM 图像

我需要使用GDCM库生成一系列 CT DICOM 图像(512x512,MONOCHROME) 。由于我正在处理的应用程序的结构,我最好为每个图像单独准备gdcm::Imagegdcm::File实例,最后将它们传递给gdcmImageWriter使用SetFile()andSetImage()方法。

gdcmImageWriter::write()无法写入 DICOM 图像。我已经查看了VTKGDCMImageWriter类的源代码和这个 GDCM 示例以获取提示。问题似乎源于我传递给的实例gdcm::Imagegdcm::File实例之间的一些不兼容(例如,两个类都包含有关 DICOM 图像的光度解释gdcmImageWriter的信息) ,但我不确定它们到底是什么。

以下简化的 C++ 代码重现了我遇到的错误:

在哪里,

WriteFile()设置gdcm::Filegdcm::Image调用write(). InitializeGDCMFile()使用 修改一些 DICOM 标签gdcm::Anonymizer,并InitializeGDCMImage()设置实际像素值(为简洁起见,此处略过)。

0 投票
1 回答
835 浏览

c# - GDCM 库无法读取 C# 中的 dicom 文件

我尝试使用以下代码使用 GDCM 库读取 DICOM 文件:

对于“sample_success.dcm”文件,我可以很好地阅读该文件(sample_success.png)。但是使用“sample_failed.dcm”文件,GDCM 会抛出异常,因为它无法读取它。我尝试使用其他 DICOM 查看器(例如 Radiant)打开该文件,它可以正常工作。我的 GDCM 版本有问题吗?为什么它无法读取它?

我使用 GDCM 2.6.5。请在此处找到这两个示例

0 投票
1 回答
1335 浏览

c++ - 读取图像的像素值

我正在尝试使用 Grassroots DICOM (GDCM) 库在我的简单 c++ 应用程序中读取包含在 DICOM 文件中的图像的像素值。读取文件元数据时,我得到有关图片的以下信息:

鉴于图像的分辨率为 256x256 并且是 MONOCHROME2 类型,我预计像素缓冲区长度为 256x256=65536 个元素,但实际上它是 131072 个元素长。

如果我使用 MATLAB 来导入像素数据,我会得到 0 - 850 范围内的 65536 个值,其中 0 是黑色,850 是白色。

当我查看从我的 c++ 应用程序中的 GDCM 读数获得的像素缓冲区时,像素缓冲区是 131072 个元素,其中每个偶数索引元素在 -128 到 +127 范围内,每个奇数索引元素在 0-3 范围内。像这样:

这种价值观的排列意味着什么?这是单色图像的某种典型像素表示吗?我一直在“谷歌图像像素结构”和类似的东西,但找不到我要找的东西。是否有一些资源可以帮助我理解这种值的排列以及它们与每个像素的关系?

0 投票
1 回答
472 浏览

c# - 在 DICOM 文件上使用 GDCM 应用 LUT

我有一个具有PALETTE_COLOR光度解释的 RLE 压缩 DICOM 文件。使用 GDCM,我可以使用以下代码获取片段:

现在我正在尝试从缓冲区创建图像。既然是PALETTE_COLOR,我必须将 LUT 应用到缓冲区。我使用这段代码:

decodedBuffer 大小是Width * Height * 3因为我在应用 LUT 后期望 RGB 像素。但生成的图像不正确。

如果我使用ImageApplyLookupTable类,我可以正确显示图像。

我不想使用ImageApplyLookupTable类,因为它会将整个图像(所有片段!)解码为原始 RGB 像素并消耗大量内存。我想逐帧解码以最小化内存使用量。

您能否为我指出如何gdcm.LookupTable正确使用类一次解码一帧的正确方向?我使用的示例文件在这里。

更新:使用ImageRegionReader适用于 8 位调色板颜色,但不适用于 16 位,您能检查一下原因吗?我这里有 16 位的示例。

0 投票
1 回答
385 浏览

c++ - 将 itkImage 保存为 DICOM 时未写入图像位置/方向

我有一个 3D 卷itkImage<unsigned char, 3>,想将其保存为 DICOM 系列。到目前为止保存系列工作,但元数据标签“图像位置病人”和“图像方向病人”没有保存在 dicom 文件中。所有其他标签均已正确保存。

如果我将元数据字典打印到控制台,这些标签将正确打印。当我在 ITK-SNAP 中打开文件时,这两个标签丢失了。

0010|0010 患者

0010|0020 12345

0020|0032 0\0\0

0020|0037 1\0\0\0\1\0

这是这些标签存储在元数据中的代码部分。我用一个工作示例创建了一个要点。

这段代码有什么问题?是否需要其他标签,以便同时保存这些标签?

0 投票
1 回答
759 浏览

dicom - GDCM 无法加载我的 DICOM 文件

我有一个在另一个 DICOM 查看器工具上完美运行的 Dicom 文件。但我似乎无法用我的 GDCM 查看器打开它。

这是我的 DCM 文件的链接 https://drive.google.com/open?id=0BwsYpl75gMyEbi1BNW52QmVtLWs

有人可以帮我解释为什么我不能用我的新查看器打开那个 DICOM 文件吗?

0 投票
0 回答
307 浏览

visual-studio-2008 - 使用 VTK 构建 GDCM

我试图做(hxr99.blogspot.nl/2013/03/qt-vtk-displaying-dicom-series-using.html)但Qt抛出错误: error: LNK1104: cannot open file 'vtkgdcm.lib' 我在这里为Windows做了一切。我检查了 GDCM_USE_VTK 和 GDCM_BUILD_SHARED_LIBS 然后生成但是当我在 VS 2008 中打开项目时没有项目 vtkgdcm。我能怎么做 :

什么时候没有 vtkgdcm 项目?

这是在 vs: #image中打开解决方案之后

我在这里错过了什么吗?我已经建立了VTK

0 投票
1 回答
343 浏览

dicom - 需要使用 Pixelmed 库进行 DICOM 压缩的指导

我是 DICOM 的新手,我已经使用 GDCM 库对 DICOM 图像进行了压缩。但由于它创建了对 Dll 文件的依赖,我正在寻找替代方法来做到这一点。

我遇到了 PixelMed 库 Ref。具有压缩类的PixelMed 库文档 ,我需要对 DICOM 压缩和 DICOM 图像的像素数据的质量因子进行适当的指导。

在那之后,我如何使用 Pixelmed 库解压缩相同的图像。

0 投票
0 回答
66 浏览

c# - VTK-缺少分号错误

我正在 Visual Studio 2010 上构建 VtkGdcm c# 包装器。在以下行中,我得到了可能缺少分号的错误。它的头文件。

任何帮助将不胜感激。

0 投票
1 回答
248 浏览

cmake - GDCM vtk msvc2013

我已经使用 MSVC2013 成功构建了 VTK 7.1.1 和 Qt 5.3.2。我已经下载了 GCDM 并配置了没有 shared_lib 的 Cmake。我可以在配置了 CMake 的 GDCM 解决方案中构建 ALL_BUILD 项目,但是无法构建 INSTALL 项目,它给了我这个错误:

它说它找不到 vtkCommonCore-7.1.dll ,并且我的 vtk 上不存在该文件,但该文件的 .lib 版本存在。有人能救我吗?