引用x64 dll文件在C#中可以工作,但在F#中不工作
我使用最新的VS 2010创建了两个全新的解决方案: C#Console Application F#Console应用程序 我引用了两个x64 dll文件:Kitware.VTK.dll和Kitware.mummy.Runtime.dll (可以在此处下载: http://www.kitware.com/product.com/products/avdownload.phpphpto a>) 当我写using Kitware时,C#VS 2010找到名称空间. 当我写open Kitware时,F#VS 2010找不到名称空间. x86版本在f#中工作正常.知道为什么这是以及如何使Kitware x64在f# 中起作用 解决方案 这可能是由于此处描述的错误: f#项目参考在Visual Studio 2010中针对X64平台时不起作用 他们说它将在vs的下一个版本中进行修复. 很好 -h- 其他解决方案 f#控制台应用程序默
12 2024-04-22
编程技术问答社区
VTK渲染到C#中
我有一个使用VTK的C ++应用程序,我想拥有vtkrenderwindow并将其放入C#WPF项目中,而无需使用C#包装器. 解决方案 主要思想是将HWND设置为vtkrenderwindow的父 这是这样做的方法: C ++类: class MyRender { //attributes .... MyRender(HWND parent) { renderer = vtkSmartPointer::New(); _render = vtkSmartPointer::New(); _render->AddRenderer(renderer); interactor = vtkSmartPointer::New(); interactor->SetRenderWindow(_render); //settin
14 2024-04-14
编程技术问答社区
CMake ExternalProject_Add()和FindPackage()。
是否有适当的方法可以找到使用ExternalProject_Add()? 构建的库(通过FindPackage()) 问题在于,Cmake在CMAKE时间无法找到库,因为外部库在编译时构建.我知道在构建库和超级构建项目时可以将这两个CMAKE功能结合起来,但我想在普通的CMake项目中使用它. 实际上,我想用ExternalProject_Add构建VTK 6,并在我的CMAKE项目中找到所有的FindPackage. 解决方案 有一种方法可以做到这一点.但这是有点笨拙的. 您基本上添加了一个自定义目标,该目标在构建过程中重新运行. 您将必须在一个小测试项目中尝试一下,以确定它是否适合您 find_package(Beaengine) ############################################ # # BeaEngine # include(ExternalProject) externalproject_add(Be
16 2024-04-04
编程技术问答社区
用于Python 3+的缓冲函数
我正在尝试使用VTK_Show打开VTK窗口,但是每次这样做时我的Ipython控制台都会崩溃,显然这是因为Ipython无法显示外部窗口,这正是VTK_SHOW所做的.我在Google上搜索了一个解决方案,但它是为Python2编写的(我使用的是Python 3.6.3).这是我发现的解决方案: import vtk from IPython.display import Image def vtk_show(renderer, width=400, height=300): """ Takes vtkRenderer instance and returns an IPython Image with the rendering. """ renderWindow = vtk.vtkRenderWindow() renderWindow.SetOffScreenRendering(1) renderWindow.Add
16 2024-04-04
编程技术问答社区
在python中把STL对象转换成VTK几何图形
我想在vtk库中使用几何图形对STL文件进行布尔操作. 我的问题是将STL几何形状转换为VTK Boolean对象的东西. 我尝试了以下... import vtk filename = 'gyroid.stl' reader = vtk.vtkSTLReader() reader.SetFileName(filename) mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(reader.GetOutputPort()) gyroid = vtk.vtkActor() gyroid.SetMapper(mapper) sphere = vtk.vtkSphere() sphere.SetRadius(30) sphere.SetCenter(0, 0, 0) boolean = vtk.vtkImplicitBoolean() boolean.SetOperationTypeToIntersec
22 2024-04-01
编程技术问答社区
RECTILINEAR_GRID的二进制VTK来自fortran代码
我有一个fortran代码以生成二进制VTK格式的网格.此代码产生这样的二进制VTK文件: # vtk DataFile Version 3.0 vtk output BINARY DATASET RECTILINEAR_GRID DIMENSIONS 2 2 1 X_COORDINATES 2 float ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ Y_COORDINATES 2 float ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ Z_COORDINATES 1 float ^@^@^@^@^@^@^@^@ 当我尝试用paraview打开它时,它会以以下错误消息崩溃: 错误:在 /home/user/openfoam/thirdparty-2.3.0/paraview-4.1.0/vtk/io/legacy/vtkrectilinearg
14 2024-03-30
编程技术问答社区
写入二进制VTK文件时出错
我正在尝试编写一个基本的二进制VTK文件,以使用paraview显示一些数据,但是我有一些错误,但我不明白为什么.这是我在C ++中的测试代码: #include #include double myarray[72] = { 0,0,0,1,0,0,2,0,0,3,0,0,4,0,0, 5,0,0,0,1,0,1,1,0,2,1,0,3,1,0, 4,1,0,5,1,0,0,2,0,1,2,0,2,2,0, 3,2,0,4,2,0,5,2,0,0,3,0,1,3,0, 2,3,0,3,3,0,4,3,0,5,3,0}; int main() { std::ofstream vtkstream("test01.vtk", std::ios::out | std::ios::trunc); bool ascii = false; if (vtkstream) { vtkstream
4 2024-03-30
编程技术问答社区
二进制vtk的Rectilinear_grid从fortran代码中不能被paraview使用。
我使用了从Stackoverflow发布的代码,并将其修改为: program VTKBinary implicit none real*4 :: x(2) = (0., 1.) real*4 :: y(2) = (0., 1.) real*4 :: z(2) = (0., 1.) character :: buffer*80, lf*1, str1*8, str2*8, str3*8 integer :: ivtk = 9, int,i lf = char(10) ! line feed character !open(unit=ivtk,file='test_bin.vtk',form='binary',convert='BIG_ENDIAN') open(unit=ivtk,file='test_bin.vtk',access='stream',convert='BIG_ENDIAN') buffer = '# vtk DataFile Ve
28 2024-03-30
编程技术问答社区
读取.VTK polydata文件并将其转换为Numpy数组
我想将.vtk ascii polydata文件转换为仅这些点坐标的numpy数组.我首先尝试过: https://stackoverflow.com/a/11894302 每个条目实际上是使该特定单元格(在这种情况下为三角形)的三个点的坐标.但是,我不想要细胞,我希望每个点的坐标(无重复).接下来,我尝试了此操作: https://stackoverflow.com/a/23359921/666196666 带有一些修改.这是我的最终代码.这些值不是numpy数组,而是将其存储为元组,但我不确定该元组是否代表每个点. import sys import numpy import vtk from vtk.util.numpy_support import vtk_to_numpy reader = vtk.vtkPolyDataReader() reader.SetFileName('Filename.vtk') reader.ReadAllScalarsOn() reade
24 2024-03-05
编程技术问答社区
使用Numpy将VTK转换为Matplotlib
我想从 vtk 文件中提取一些数据(例如标量),以及它们在网格上的坐标,然后在 matplotlib 中对其进行处理.问题是我不知道如何从VTK文件中获取点/单元数据(例如,通过给出标量的名称),然后使用 vtk_to_numpy 我的代码应该看起来像: import matplotlib.pyplot as plt from scipy.interpolate import griddata import numpy as np from vtk import * from vtk.util.numpy_support import vtk_to_numpy # load input data reader = vtk.vtkXMLUnstructuredGridReader() reader.SetFileName("my_input_data.vtk") reader.Update() (...missing steps) # VTK to Numpy my_nu
16 2024-03-04
编程技术问答社区
为Mayavi points3d绘图制作动画
我正在尝试制作粒子轨迹的视频.但是,以某种方式我的场景从未更新.这是一个非常简单的例子: from __future__ import absolute_import, division, print_function from mayavi import mlab import numpy as np import math alpha = np.linspace(0, 2*math.pi, 100) xs = np.cos(alpha) ys = np.sin(alpha) zs = np.zeros_like(xs) mlab.points3d(0,0,0) plt = mlab.points3d(xs[:1], ys[:1], zs[:1]) @mlab.animate(delay=100) def anim(): f = mlab.gcf() while True: for (x, y, z) in zip(xs, ys, zs
18 2024-02-26
编程技术问答社区
在NDK r17c上用ndk-build链接VTK,会出现'未定义的引用'错误。
我已经构建了在AndroidStudio中,我创建了用于使用VTK的新模块,在该模块内,我正在使用NDK-build来构建库.模块的结构是: ... |--jni/ |--|--include/ |--|--|--vtkAbstractArray.h |--|--|--vtkAbstractCellLinks.h |--|--|-- ... |--|--lib/ |--|--|--arm64-v8a/ |--|--|--|--libvtkCommonColor-8.9.0.a |--|--|--|--libvtkCommonComputationalGeometry-8.9.0.a |--|--|--|--... |--|--Application.mk |--|--Android.mk |--|--vtk-lib.cpp 我正在使用 vtk-lib.cpp 文件中的VTK库(我正在从Java代码访问). 为了使它起作用,我并没有为所有受支持的Android体系结构构建图
18 2024-02-17
编程技术问答社区
没有找到匹配的 vtk 错误分布
我尝试使用pip install vtk,但我面临错误. "错误:找不到满足需求VTK的版本(来自版本:无) 错误:没有找到VTK的匹配分布" 我尝试了: 同时安装32位和64位 将所有版本的Python从3.5到3.8 升级PIP ,还使用了Anaconda,我安装了它,但仍未在Python中工作,并且在CMD中未通过vtk --version>. 识别 请帮助我 谢谢 解决方案 要更新此答案VTK现在在9.0版本下具有python 3.8支持,刚刚发布 vtk 9.0下载如果您从提供的链接下载并安装WHL. 其他解决方案 使用Python 3.7(需要64位).或从来源. 其他解决方案 Python 3.8上的安装成功使用Conda conda install vtk
30 2024-01-26
编程技术问答社区
用anaconda 3.6安装VTK
我需要在Ubuntu 16上安装VTK和Mayavi.我的Anaconda有python 3.6.如果我运行: conda install -c menpo vtk=7.0.0 vtk 我得到: Fetching package metadata ........... Solving package specifications: . UnsatisfiableError: The following specifications were found to be in conflict: - python 3.6* - vtk 7.0.0* -> python 3.5* -> openssl 1.0.1* - vtk 7.0.0* -> python 3.5* -> xz 5.0.5 Use "conda info " to see the dependencies for each packa
48 2024-01-26
编程技术问答社区
vtkDataArrayTemplate的非虚拟版本
我有一个模板类myClass,其中t可以是 scalial (float,int,double等) 我想创建一个vtkFloatArray,vtkIntArray或vtkDoubleArray,具体取决于t. 我认为vtkDataArrayTemplate将是一个很好的解决方案. 不幸的是,这是一个虚拟类,所以我无法写下: vtkSmartPointer > array = vtkSmartPointer >::New(); 因为当我尝试实例化myClass时,我会得到错误: error: invalid conversion from ‘vtkObject*’ to ‘vtkDataArrayTemplate*’ [-fpermissive]` 我认为这是因为vtkDataArrayTemplate::New()不存在(因为类是虚拟的)
16 2024-01-09
编程技术问答社区
activiz 64位控制
我已经在项目上安装了Activiz 5.8.0(我通过Nuget Package Manager安装了32和64位版本). 我只能导入工具箱,仅32位renderwindowcontrol组件kitware.vtk.dll,当我尝试64位版本时,它不起作用(我什至无法将其导入工具箱). 我正在使用VS2012 64位版. 谢谢您的帮助! 解决方案 我正在使用VS2008,我知道在64位的表单设计师中存在一些问题,但是如果正确地获得参考文献,则应该能够使用Activiz 64位在发布模式下编译您的应用程序.对于32位版本的调试.
74 2024-01-09
编程技术问答社区
复制vtkImageData到cv::Mat
我正在尝试将vtkimagedata*类复制到cv :: mat结构[我的目标是将MHD文件读取到openCV].该文件本质上是一个3D矩阵,因此我想获得一个包含所有的向量卷的切片.到目前为止,我已经提出了此代码 reader->SetFileName(INPUT_DATA_1.c_str()); reader->Update(); imageData_1 = reader->GetOutput(); extractVOI->SetInput(imageData_1); int dims[3]; imageData_1->GetDimensions(dims); extractVOI->SetVOI(0, dims[0], 0, dims[1], 75, 75); // Set it to z=75 extractVOI->GetOutput()->SetScalarTypeToSignedChar(); imageExport->SetInputConnection(extra
32 2024-01-09
编程技术问答社区
VTK如何通过c++上的imageImport导入三维图像数据,用于体积渲染
通过VT​​K Python API,我们可以导入/制作3D图像数据和卷渲染如下: 和Python代码是: # coding=utf-8 import vtk from numpy import * import random num = 74 # We begin by creating the data we want to render. # For this tutorial, we create a 3D-image containing three overlapping cubes. # This data can of course easily be replaced by data from a medical CT-scan or anything else three dimensional. # The only limit is that the data must be reduced to unsigned 8 bit or 16 bit i
48 2024-01-08
编程技术问答社区
gdcmimg将DICOM图像的堆栈转换为vti文件?
我已经使用cmake(使用VS2012)编译了GDCM.但是,我在bin/Debug文件夹中找不到gdcm2vtk.exe. 我能够找到gdcmimg.exe,这是将一堆图像转换为3D的工作吗? 我已经在某个地方读到,如果我能够从图像的堆栈中生成VTI文件,那么我将能够使用Activiz显示. 我没有看到文件gdcm2vtk.exe的已知原因?它在源代码中(我可以找到GDCM2VTK.CXX源代码). 解决方案 默认情况下未启用GDCM应用程序.当您使用CMake-GUI配置GDCM时,您需要启用GDCM_BUILD_APPLICITATION(以及可能的GDCM_BUILD_EXAMPLES).另外,您还必须启用GDCM_USE_VTK,以获得GDCM的VTK支持. 如果您上次构建的GDCM时未启用其中的任何一个,则我将运行Cmake-GUI配置,然后生成然后在GDCM上进行全部构建. 其他解决方案 @drescherjm所解释的这将需要重新编译.相反
46 2024-01-08
编程技术问答社区
将ASCII中的3D阵列转换为Paraview可以读取的文件
我试图将我的数据文件转换为Paraview可以读取的内容.到目前为止,我发现它需要转换为VTK,但我不确定如何开始.我已经看到了很多答案,但没有与我需要的答案.这是我拥有的...我有一个.dat文件,其中有4列的数字. x-坐标,y-坐标,z-坐标,密度在该点 我使用的代码在fortran中.有人可以向我指出正确的方向吗?可以输出文件本身,或者我可以用什么来转换文件.谢谢. 解决方案 paraview支持许多不同的文件格式. Paraview使用所谓的读者读取那些不同的文件格式.您可以在此处获取支持文件格式/读者的列表: 读者的paraview列表 列表中的第一个(AVS UCD)非常易于使用.以下网页指示用于构建此阅读器文件的格式: 如那里所示,您要做的就是输入点坐标,然后列出您的单元格(对于您来说,这只是点),最后每个点输入相应的向量数据. 其他解决方案 您的.dat文件是.csv文件. 将其重命名为.csv并使用paraview打
34 2024-01-08
编程技术问答社区