我有一个小的python VTK函数,可以计算嵌入在一堆TIFF图像中的对象的体积和表面积.要阅读TIFF's到VTK,我已经使用vtkTIFFReader并使用处理结果vtkImageThreshold.然后我用它vtkMassProperties来提取阈值处理后识别的物体的体积和表面积.
使用VTK-5.04此函数返回测试堆栈的正确值(3902像素).但是,使用VTK-5.4.2相同的函数会返回不同的值(422像素).有人可以解释一下吗?
def testvtk():
# read 36 TIFF images. Each TIFF is 27x27 pixels
v16=vtk.vtkTIFFReader()
v16.SetFilePrefix("d:/test/slice")
v16.SetDataExtent(0,27,0,27,1,36)
v16.SetFilePattern("%s%04d.tif")
v16.SetDataSpacing (1,1,1)
v16.Update()
# Threshold level for seperating background/foreground pixels
maxthres=81
# Threshold the image stack
thres=vtk.vtkImageThreshold()
thres.SetInputConnection(v16.GetOutputPort())
thres.ThresholdByLower(0)
thres.ThresholdByUpper(maxthres)
# create ISO surface from thresholded images
iso=vtk.vtkImageMarchingCubes()
iso.SetInputConnection(thres.GetOutputPort())
# Have VTK calculate the Mass (volume) and surface area
Mass = vtk.vtkMassProperties()
Mass.SetInputConnection(iso.GetOutputPort()) …Run Code Online (Sandbox Code Playgroud) 我只是在学习 VTK(和 C++ GUI 编程),希望有一些简单的问题。
主应用程序在应用程序的某个时刻启动渲染窗口。希望能够让主线程继续,同时显示 VTK 窗口。是否有特定方法将 VTK 窗口作为线程启动?
我的环境是 Linux,我可以使用 boost 和 pthreads。谢谢。
VTK 是可视化工具包,参见 vtk.org
有没有人有相当比较VTK和OpenSceneGraph的经验?我对VTK比较熟悉,但我很好奇是否有人广泛尝试过.
我有两个内置的,5.6 vtk和2.9.9 osg,可以运行示例......乍一看OSG似乎更"粗糙",但也许没关系.特别是我担心能够在VTK中摆弄低级openGL; 例如,我认为glReadPixels在OSG上会表现得更好.评论?
(或者是否有一个很好的'其他',我错过了?我知道其他人存在,但请看一下OSG和VTK的大范围......)
我正在尝试用分析字段填充结构化网格,但是尽管阅读了vtk文档,但我还没有找到如何在网格点实际设置标量值或设置网格的间距/原点信息.从下面的代码开始,我该怎么做
grid = vtk.vtkStructuredGrid()
numPoints = int((maxGrid - minGrid)/dx)
grid.SetDimensions(numPoints, numPoints, numPoints)
Run Code Online (Sandbox Code Playgroud) 这个错误:
"1>cl : Command line error D8021: invalid numeric argument '/Wno-deprecated'"
Run Code Online (Sandbox Code Playgroud)
通过 MSVC 编译器构建 VTK + Qt 项目时发生。我认为标志设置存在一些问题。以下是我的 CMakeList.txt
cmake_minimum_required(VERSION 2.8)
PROJECT(QtImageViewer)
IF(NOT VTK_BINARY_DIR)
FIND_PACKAGE(VTK)
INCLUDE(${VTK_USE_FILE})
ENDIF(NOT VTK_BINARY_DIR)
SET(QT_QMAKE_EXECUTABLE ${VTK_QT_QMAKE_EXECUTABLE} CACHE FILEPATH "")
SET(QT_MOC_EXECUTABLE ${VTK_QT_MOC_EXECUTABLE} CACHE FILEPATH "")
SET(QT_UIC_EXECUTABLE ${VTK_QT_UIC_EXECUTABLE} CACHE FILEPATH "")
FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})
SET (SRCS main.cxx)
INCLUDE_DIRECTORIES( ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})
ADD_EXECUTABLE( qtimageviewer MACOSX_BUNDLE ${SRCS})
TARGET_LINK_LIBRARIES( qtimageviewer
QVTK
${QT_LIBRARIES}
vtkRendering
vtkGraphics
vtkIO
vtkCommon
)
Run Code Online (Sandbox Code Playgroud)
请解释如何解决此错误?
这是我的一部分 CMakeLists.txt
set (VTK_DIR "/usr/include/vtk-5.8")
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
IF(VTK_FOUND)
message("found VTK. Version:" ${VTK_VERSION}. VTK_DIR: ${VTK_DIR})
ELSE(VTK_FOUND)
MESSAGE(FATAL_ERROR
"Cannot build the executable without VTK. Please set the
VTK_DIR")
ENDIF(VTK_FOUND)
Run Code Online (Sandbox Code Playgroud)
cmake . 告诉我:
发现VTK。版本:6.0.0.VTK_DIR:/usr/local/lib/cmake/vtk-6.0
在命令行中提供 VTK_DIR 也无济于事:
cmake -DVTK_DIR:PATH=/usr/include/vtk-5.8 .
Run Code Online (Sandbox Code Playgroud)
仍然 cmake 寻找/usr/local/lib/cmake/vtk-6.0VTK。
这里有什么问题?
我有一组 3D 点,我使用 scipy.spatial.Delaunay 来进行三角剖分/四面体化。我现在有一组所有四面体的独特面,并希望在 3D 中可视化这些面。
是否有任何 Python 库(或带有 Python 包装器的库)可以做到这一点?
我试图保存对应于相同结构网格的三组向量(速度、湍流强度和速度波动的标准偏差)。理想情况下,我希望它们成为同一个 vtk 文件的一部分,但到目前为止,我只能将其中一个放入文件中,如下所示:
sg = tvtk.StructuredGrid(dimensions=x.shape, points=pts)
sg.point_data.vectors = U
sg.point_data.vectors.name = 'U'
write_data(sg, 'vtktestWake.vtk')
Run Code Online (Sandbox Code Playgroud)
我花了几个小时寻找如何添加多个向量或标量场的示例,但失败了,所以我想我会在这里问。任何指导将不胜感激。
谢谢,
阿图尔
我正在尝试在 windows7 和 Visual Studio2013 中编译 VTK5.10.1(vs2012 C++ 编译器,所以我想有人可能会在 2012 年面临同样的问题)
在修复了一些小错误和一些丢失的头文件之后,请按照 VTK wiki 的教程进行操作。最后一步:
我有两个错误
#define VTKOSTREAM_OPERATOR(type) \ vtkOStreamWrapper& vtkOStreamWrapper::operator << (type a) \ { this->ostr << a; 返回 *this; }
Run Code Online (Sandbox Code Playgroud)VTKOSTREAM_OPERATOR(ostream&);
2.binary '==' : 没有找到使用类型为 'std::basic_istream>' 的左操作数的运算符(或者没有可接受的转换)
Run Code Online (Sandbox Code Playgroud)if ( this->IFile->read(result, 80) == 0)
这里是在 std::basic_istream> 和 int 之间运行 operator== 的源代码托盘
但是在 std::istream 中, operator== 不会被覆盖。
等待帮助。谢谢
我想显示具有光度解释MONOCHROME2的DICOM文件.
一些图像规格是 -
Rows: 1024
Columns: 1024
No of Frames: 622
Bits Allocated: 16
Bits Stored: 10
High Bit: 9
Pixel Representation: 0
Sample per pixel: 1
Run Code Online (Sandbox Code Playgroud)
我gdcmRegionReader用以下面的方式提取单帧字节数组.
gdcm.ImageRegionReader _regionReader = new gdcm.ImageRegionReader();
_regionReader.SetRegion(_boxRegion); // _boxRegion is some region
_regionReader.ReadIntoBuffer(Result, (uint)Result.Length);
Marshal.Copy(Result.ToArray(), 0, _imageData.GetScalarPointer(),
Result.ToArray().Length);
_viewer.SetInput(_imageData); // _viewer = vtkImageViewer
Run Code Online (Sandbox Code Playgroud)
那么有人可以帮助我如何加载和显示MONOCHROME2 dicom图像.