问题标签 [itk]
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.
ios - iOS 上的 ITK 库 - 加载 DICOM
我已经为 ipad 构建了 ITK 库 - 它可以工作。然后我尝试制作一个 ITK 示例 - 类似这样的:
但是我尝试了很多可能将DICOM
堆栈加载到 ipad 的文档文件夹而不是c:/test
路径的目录中。但这没有用。
DICOM
所以我的想法是通过互联网加载类似的内容:
现在我考虑尝试获取 dicom 数据(患者姓名等)并将其与图像数据分开。然后我认为最后一定有可能在 IPAD 上显示 UIImage。
我为此搜索了一个示例,但遗憾的是……我没有找到好的东西。如果有人知道如何通过 ipad 在 ipad 上加载 dcm,ITK
或者知道如何从NSData
对象中获取图像数据?
c++ - ITK 中的双精度和智能指针问题
我遇到的问题是我使用Qt从GUI打开一个图像(通过我创建的ImageFrame类,这个类定义了PixelType如下:
在提取图像后,我会撒谎做一个 FFT,输入是真实数据。错误说:不能将'itk::SmartPointer'的第三个参数转换为'double *'和ImageFrame类的对象(它已将像素类型定义为double)。
1>.\prueba_r01.cpp(126) : error C2664: 'fftw_plan_dft_r2c_2d' : no se puede convertir el parametro 3 de 'itk::SmartPointer' a 'double *'
1> with
1> [
1> TObjectType=itk:: Image
1> ]
1> No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador
现在我不明白为什么如果像素是双格式,它就不能计算 fft。有谁可以告诉我如何解决这个问题?非常感谢大家!
c++ - 带有 ITK 和 FFTW 的 VS2008 中的错误 LNK2019(未解析的外部符号)
我正在使用 ITK 执行一个项目来处理医学图像。经过大量工作后,没有进一步的编译错误,但在链接过程中,我得到以下信息:
1>--------生成开始:proyect:prueba_r01,配置:Debug Win32 ------ 1>Linking... 1>Creating library C:\Documents and Settings\GTTS\Mis documentos\Visual Studio 2008\Projects \prueba_r01\Debug\prueba_r01.lib 和对象 C:\Documents and Settings\GTTS\Mis documentos\Visual Studio 2008\Projects\prueba_r01\Debug\prueba_r01.exp
1>prueba_r01.obj : 错误 LNK2019: extern symbol "public: double (* __thiscall prueba_r01::multiply_matrix_2D(double ( )[2],double ( )[2],int,int))[2]" (?multiply_matrix_2D@ prueba_r01@@QAEPAY01NPAY01N0HH@Z) 未解决,在函数“private: void __thiscall prueba_r01::filtro(void)”(?filtro@prueba_r01@@AAEXXZ) 中引用
1>C:\Documents and Settings\GTTS\Mis documentos\Visual Studio 2008\Projects\prueba_r01\Debug\prueba_r01.exe : 致命错误 LNK1120: 1 externos sin resolver
1>prueba_r01 - 2 个错误,0 个警告 =========== 一般:0 个更正,1 个不正确,0 个实现,0 个省略 ==========
方法 multiply_matrix_2D 在私有槽“filtro()”中调用时会产生错误(翻译为过滤器)文件的标题是:
而问题所在的主要部分在.cpp文件中,显示在这里:
将 **double 指针转换为 *fftw_complex 的过程在这里完成,因为我想将频域 (H(w)) 中的滤波器与图像的 fft 变换结果相乘,这就是原因。重要的是要注意 fftw_complex 是 double[2],第一行为实部,第二行为虚部。有问题的方法如下所示:
任何帮助都会非常好!我现在很迷茫……谢谢!格拉西亚斯!安东尼奥
c++ - 时间编译访问违规 (0xC0000005)
我想要做的过程是对图像进行 FFT(存储在“imagen”中),然后将其与过滤器“H”相乘,之后也会进行逆 FFT。代码如下所示:
问题出在此处,在函数“multiply_matrix_2D”内的循环中:
x = 95 和 y = 93 的值是 M = 191 和 N = 96;prueba_r01.exe 中 0x004273ab 处的不受控制的异常:0xC0000005 访问违规读取 0x01274000。
图片 http://img846.imageshack.us/img846/4585/accessviolationproblem.png
很多变量的值都是红色的,并且对于翻译问题:H_cast[][1] 在值框中:“Error30CXX0000:不可能评估表达式”。
我将非常感谢任何形式的帮助!
安东尼奥
c++ - 用于计算 FFT_2D 的 2D 双 * 指针中图像的像素值
我想计算一个图像的 FFT,我读取图像,ITK SmartPointer 被称为“imagen”。我用于计算 FFT (fftw_plan_dft_r2c_2d) 的函数的输入需要一个 2D 双 * 指针作为输入。因此,我这样做:
但是当我尝试访问图像的像素值时,它们没有被定义“图像”的像素类型是双倍的:
并且图像是使用 Qt 通过用户界面从帧中读取的:
谁能帮我这个?我需要将图像的值放在 2D double* 指针中以计算 fft。
干杯并感谢您的帮助!
安东尼奥·戈麦斯·巴克罗
已编辑
我已经解决了我的问题,贴在下面,但现在的问题是将结果转换为二维矩阵,直到执行时间才知道它的第二维,因为图像是在执行期间而不是在编译期间加载的,有什么提示吗? ? 谢谢!
解决方案
c++ - 如何使用itkvtkglue将ITK与VTK一起使用?
我想从wiki示例中创建一个将ITK与VTK结合起来的示例,称为IO/ImageFileReader。
我下载了itkvtkglue,解压到一个文件夹,用cmake配置,用visual studio 2010构建。
但是当我尝试配置给定的示例时,我无法使用它。即使 cmake 自己找到了 ItkVtkGlue_DIR,它也会给出他无法包含必要文件的错误。未能包含(${ItkVtkGlue_USE_FILE})
我应该以某种方式更改 CMake 查找我的 ItkVtkGlue 头文件的文件夹吗?有没有其他方法可以同时使用 ITK 和 VTK?
错误和文件内容如下。
CMakeLists.txt 看起来像这样:
感谢大家的帮助。
xcode - 带有 ITK、VTK 的 Cocoa 应用程序读取 DICOM 文件
我有 xcode 3.2.6 和 Mac OS X 10.6.8,所以我下载了 ITK 3-2.20 和 VTK,Cmake 2.8-5。
我已经使用 Cmake 安装了 ITK 和 VTK,然后我也使用 Cmake 创建了 Xcode 项目 ITK 和 VTK。我设置了目标“ALL_BUILD”,然后运行目标“安装”。所以我可以从 VTK 运行一些测试并且它们工作!
但是谁能说我应该做些什么来创建 Xcode 项目(Cocoa 应用程序)以使用 ITK 和 VTK 库读取和显示 DICOM 文件?
我不明白如何使用例如 DicomImageReadWrite.cxx 来创建 Cocoa 应用程序。
有人有类似 Xcode 项目的例子吗?(我有 osirix.xcodeproj 但是当我尝试运行它时会出现很多错误)
c++ - 使用 ITK 类的 C++ 上的奇怪段错误
自 1 或 2 周前以来,我一直在尝试解决这个非常奇怪的问题。
我正在尝试使用 ITK 读取 DICOM 图像,然后进行一些处理。
问题是,我想独立于像素类型读取图像。为此,我必须找出像素类型并在运行时实例化 itkImage。
因此,当我读取图像文件时,我必须将它从 itkImage 转换为 itkImageBase(在 itkImage.h 中它被声明为类 itkImage:public itkImageBase)。
不幸的是,当我在 if 块内将它从一种类型转换为另一种类型后,我无法在 if 块之外的任何地方访问存储在此变量上的值。这是代码:
*对不起葡萄牙语中的变量和方法名称。这里有一点帮助:
leitor是读者的意思
TipoPixel 表示像素类型
abreImagem(templated method) 表示 openImage
iniciaAbrirImagem 表示initialOpenImage
正如您所看到的(或者至少我希望代码足够清晰,以便您可以看到它),我声明了一个指向 itk::ImageBase<3> 的指针并在类构造函数上使用值 0 启动它(已经尝试过不初始化,初始化使用null,没有任何效果......)。
之后,我调用其他类的一些方法来找出输入图像的像素类型。然后,我进入 if 块,在其中实例化一个 itk::ImageFileReader 和一个与输入图像具有相同像素类型的 itkImage。
然后,我将 TipoLeitor 类型的变量(或 ReaderType,如你所愿)发送到模板函数,在那里我实际读取 try/catch 块内的图像文件。然后,在下一次尝试中,我将阅读器的输出(一个 itkImage)转换为 itkImageBase 并将其放入 imagemB 变量中。
如果我尝试调用该类的一些随机方法,例如模板化方法中的 GetNameOfClass,那没关系,一切都按预期进行。如果我在调用模板化方法的 if 块中做同样的事情,那也没关系。但是,如果我在 if 块之后尝试在函数内部做同样的事情,它就不起作用。如果我尝试在 GetOutput() 方法上执行此操作,也会发生同样的情况。
就像变量 imagemB 在 if 块中初始化一样,当它退出块时,它被设置为未初始化(这个词甚至存在吗)。
没有详细的错误消息,只是“分段错误”。
感谢您的帮助,并对糟糕的英语和长文本感到抱歉。
vtk - 使用 ITK 时 DICOM 图像太暗
我正在尝试使用 ITK 读取图像并使用 VTK 显示。
但是有一个问题困扰了我很久。
我使用 itkGDCMImageIO 和 itkImageSeriesReader 类读取图像。
阅读后,我可以做两件事:
1. 我可以使用 itkImageToVTKImageFilter 将 ITK 图像转换为 vtkImageData 并使用 vtkImageReslicer 来获取所有三个轴。然后,我使用 vtkImageMapper、vtkActor2D、vtkRenderer 和 QVTKWidget 类来显示图像。
在这种情况下,当我显示图像时,颜色有几个问题。其中一些显示得很亮,另一些则非常暗,几乎看不到它们。
2. 第二种场景是注册流水线。在这里,我像以前一样阅读图像,然后使用 ITK 软件指南关于注册的章节中显示的类。然后我重新采样图像并使用 itkImageSeriesWriter。
这就是问题出现的时候。将图像写入文件后,我将这个新图像与我在 XMedcon 软件中用作输入的图像进行比较。如果我写的图像在我的软件中显示得太亮,当我在 XMedcon 中比较它们时没有任何变化。否则,如果我的软件中的图像太暗,它会在 XMedcon 中显得一团糟。
我注意到,在比较两个图像(原始图像和新图像)时,在这两种情况下,模态、像素尺寸和 glmax 都有变化。
我想问题出在 glmax 上,因为主要变化发生在较暗的图像上。
我真的不知道该怎么办。这与颜色级别/窗口有关吗?最奇怪的是,所有图像都非常相似,具有相同的标签,只有其中一些在显示/写入时显示错误。
c++ - 在 Qt 用户界面中更新 itk 图像
我有一个问题想告诉你,因为大约有几天我没有新的想法。
我有一个用双 * 指针指向的图像,我想将其转换为 itk::smartpointer 以更新用户图形界面,为此我制作了这个方法:
然后在这里调用:
之后,更新用户界面:
问题是似乎一切正常,但界面中的图像没有更新。另一个对我的项目也有效的选项可能是将图像存储在“.bmp”或“.jpeg”文件中。有人可以帮助我吗?关于什么不能正常工作的任何想法?有没有创建这个图像文件的功能?