VTK 的可视化方法:颜色映射

Python自定义颜色映射的方法 分别例举了OpenCV和Matplotlib的Colormap预设方案并简单介绍了Python语言中使用两种方式实现自定义线性渐变颜色映射的方法。 阅读详情
AI摘要

本文详细介绍了VTK中的颜色映射机制,包括颜色映射的过程、颜色查找表的构建、vtkDataSet及其子类在可视化中的角色,以及如何使用vtkLookUpTable和vtkScalarBarActor实现颜色映射和图例展示。

VTK 的可视化方法:颜色映射

颜色映射的操作对象是数据集中的标量属性。它是一种常用的标量算法。它会根据数据集中各个部分不同的标量值,对各个部分上不同的颜色。与此相关的另一种上色方法是控制演员的颜色属性,但这样整个图形只有单一的颜色,这显然没有颜色映射方法灵活。

颜色映射的本质就是将标量数据附加到单元或者点上,然后再绘制的时候通过点集或者单元集的数据在颜色表中查找标量值对应的颜色,然后进行绘制。

颜色映射过程

假设有一个共256种颜色的查询表,且颜色的索引号范围为0~255,那么颜色映射就是将数据集的标量值映射到这些索引号的过程。在渲染时,与索引号对应的颜色将作为数据中相应部分的颜色显示出来。映射的方法如下图所示:

在这里插入图片描述

上图中,scalar表示数据集中的标量值,index表示映射后的索引号。smin和smax表示的是标量值的映射范围(注意不是数据集中标量值的取值范围)。若一个标量值小于smin,则其映射的索引号为0;若一个标量值大于smax,其映射的索引号为255;若一个标量值在这个范围之间,则映射过程就是一个求一元一次函数值的过程,其对应的曲线是一条直线,不过需要对函数值取整。实际上,在范围外的标量值也可以被看作smin和smax,然后对其求函数值。

在VTK中,颜色映射的过程是由映射器mapper完成的。可以通过调用映射器的方法SetScalarRange()来设置标量值的范围[smin, smax]。映射过程只是为每个标量值确定了一个索引号,最终该标量值映射为何种颜色,还需要看颜色查询表中颜色的分配情况。如果不手动创建一个查询表,则映射器会使用一个默认的映射表。

vtkDataSet

vtkDataSet是一个抽象类,不能直接实例化,它是VTK所有数据集类型的父类,主要为数据集类型声明了一些通用接口以及成员。

在这里插入图片描述

从这个继承树中可以看到vtkDataSet所有的子类。

实现颜色标量映射主要关注的只有两个接口:

  1. vtkCellData* GetCellData();
  2. vtkPointData* GetPointData();

这两个数据分别对应的是单元数据集点数据集。

单元数据集中的单元指得是计算机图形的图元集合,如果是多边形数据集那么它就是一个三角网格中所有三角形的集合,如果使用结构或者非结构化网格数据,那么它就是网格单元数据的集合。

点数据集合是单元集合中所用到所有的点的集合,根据数据集的类型不同,包含的数据也略微有点不同。

vtkDataSetAttributes

在这里插入图片描述

上述的vtkCellData和vtkPointData都继承于vtkDataSetAttributes,它可以用于包含标量、向量、法线、纹理坐标、张量、全局 id、谱系 id 和字段数据等数据。

// Description:
// Set/Get the scalar data.
int SetScalars(vtkDataArray* da);
int SetActiveScalars(const char* name);
vtkDataArray* GetScalars();// Description:
// Set/Get the vector data.
int SetVectors(vtkDataArray* da);
int SetActiveVectors(const char* name);
vtkDataArray* GetVectors();// Description:
// Set/get the normal data.
int SetNormals(vtkDataArray* da);
int SetActiveNormals(const char* name);
vtkDataArray* GetNormals();// Description:
// Set/Get the texture coordinate data.
int SetTCoords(vtkDataArray* da);
int SetActiveTCoords(const char* name);
vtkDataArray* GetTCoords();// Description:
// Set/Get the tensor data.
int SetTensors(vtkDataArray* da);
int SetActiveTensors(const char* name);
vtkDataArray* GetTensors();// Description:
// Set/Get the global id data.
int SetGlobalIds(vtkDataArray* da);
int SetActiveGlobalIds(const char* name);
vtkDataArray* GetGlobalIds();// Description:
// Set/Get the pedigree id data.
int SetPedigreeIds(vtkAbstractArray* da);
int SetActivePedigreeIds(const char* name);
vtkAbstractArray* GetPedigreeIds();

以上接口对应了每种数据的获取与设置,每种数据似乎可以添加多个序列,然后可以使用序列名称调整当前使用的数据,序列名称通过vtkDataArray类setName函数进行设置。序列数据中的顺序需要对应实际数据的顺序。这里的顺序指的是ID,如Point数据,每个点都会有一个ID,那么为这些点数据附加标量数据的时候,标量数据的传入顺序就需要与id一一对应,如果是cellData那么也同理。

vtkLookUpTable

图像彩色映射的原理是首先生成一个颜色查找表,然后根据图像的一个标量值向颜色查找表中查找对应的颜色,并用新颜色值替代原来的像素值。

VTK中vtkImageMapToColors负责图像彩色映射,vtkLookUpTable提供一个从标量到颜色的映射表。

//设置颜色的过渡模式
void SetRamp(int);
void SetRampToLinear();//线性
void SetRampToSCurve();//s曲线
void SetRampToSQRT();//y=sqrt(x)
int GetRamp();
//设置颜色的与标量的映射模式
void SetScale(int);
void SetScaleToLinear();//线性
void SetScaleToLog10();//对数
int GetScale();

void SetTableRang(double r[2]);//设置标量的范围(最小,最大值)
void SetHueRang(double,double);//设置色调范围,取[0,1]之间
void SetSaturationRange(double,double);//设置饱和度,取[0,1]之间
void SetValueRange(double,double);//设置颜色值的取值范围,取[0,1]之间
void SetAlphaRange();//设置透明的取值范围,取[0,1]之间
void SetNanColor(double,double,double,double);//设置遇到Nan(非数)时使用的颜色
void SetBelowRangeColor(double,double,double,double);//设置当低于范围使用的颜色
void SetAboveRangeColor(double,double,double,double);//设置当超出范围时使用的颜色
void SetNumberOfTableValues(vtkIdType number);//设置颜色数量(色块)
void SetTableValue(vtkIdType indx,double r, double g, double b, double a=1.0);//直接设置颜色值
//根据各种参数生成颜色表
void Build();

这是它的一些关键接口,通过这些结构可以构造一个完整的颜色表,然后再调用映射器对象的SetLookupTable (vtkScalarsToColors *lut)函数设置即可。

vtkScalarBarActor

这个类不是颜色映射时必须要的类,但是它可以直观的将颜色映射表显示到窗口上,非常的方便。

使用起来也很简单,它继承于vtkActor,只需要调用SetLookupTable (vtkScalarsToColors *)函数设置好对应的颜色表,然后将Actor添加到渲染器中即可。

实例:

//为三角形准备三个顶点
vtkNew<vtkPoints> points;
points->InsertNextPoint(1, 0, 0);
points->InsertNextPoint(0, 0, 0);
points->InsertNextPoint(0, 1, 0);

//生成点的标量数据
vtkNew<vtkIntArray> scalar;
scalar->InsertNextTuple1(30);
scalar->InsertNextTuple1(50);
scalar->InsertNextTuple1(100);

//使用顶点构建一个三角形 点使用ID传入
vtkNew<vtkTriangle> triangle;
triangle->GetPointIds()->SetId(0, 0);
triangle->GetPointIds()->SetId(1, 1);
triangle->GetPointIds()->SetId(2, 2);

//将三角形传入单元集
vtkNew<vtkCellArray> cellArray;
cellArray->InsertNextCell(triangle);

//为多边形数据添加单元集和点集
vtkNew<vtkPolyData> polydata ;
polydata->SetPolys(cellArray);
polydata->SetPoints(points);
//为点数据添加标量
polydata->GetPointData()->SetScalars(scalar);

vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputData(polydata);
mapper->SetScalarRange(scalar->GetRange());
mapper->Update();
//为映射器添加一个颜色映射表
vtkNew<vtkLookupTable> lookupTable;
lookupTable->SetTableRange(scalar->GetRange());
lookupTable->Build();
mapper->SetLookupTable(lookupTable);

//为窗口添加一个图例
vtkNew<vtkScalarBarActor> scalarBarActor;
scalarBarActor->SetLookupTable(lookupTable);

vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
actor->GetProperty()->SetColor(255, 0, 0);

vtkNew<vtkRenderer> renderer;
vtkNew<vtkRenderWindow> window;
window->AddRenderer(renderer);

vtkNew<vtkRenderWindowInteractor> interactor;
interactor->SetRenderWindow(window);

renderer->AddActor(actor);
renderer->AddActor(scalarBarActor);
window->Render();
interactor->Start();

运行结果:

在这里插入图片描述

代码实现了一个三角形的构建,并为三角形的三个顶点添加标量,然后在显示时使用标量进行颜色映射,可以说这是一个最简单的标量映射的一个例子。

需要注意的是因为代码中是为point添加的标量,除了顶点以外的其他位置的标量值都是经过线性插值得到的。

实例

#include "VTKColorMapping.h"

#include <vtkConeSource.h>
#include <vtkSTLReader.h>
#include <vtkMultiBlockPLOT3DReader.h>
#include <vtkDataSet.h>
#include <vtkMultiBlockDataSet.h>
#include <vtkShrinkPolyData.h>
#include <vtkStructuredGridGeometryFilter.h>
#include <vtkStructuredGridOutlineFilter.h>
#include <vtkLookupTable.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>

VTKColorMapping::VTKColorMapping(QWidget* parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);

	_pVTKWidget = new QVTKOpenGLNativeWidget();
	this->setCentralWidget(_pVTKWidget);
	// this->showMaximized();

	// 1. generate data
	// vtkSmartPointer<vtkConeSource> cone = vtkSmartPointer<vtkConeSource>::New();
	// or, read data
	// vtkMultiBlockPLOT3DReader 是一个读取器对象,用于读取 PLOT3D 格式的文件并在输出时生成结构化网格
	vtkSmartPointer<vtkMultiBlockPLOT3DReader> plot3dReader = vtkSmartPointer<vtkMultiBlockPLOT3DReader>::New();
	plot3dReader->SetXYZFileName("combxyz.bin");
	plot3dReader->SetQFileName("combq.bin");
	plot3dReader->SetScalarFunctionNumber(100);
	plot3dReader->SetVectorFunctionNumber(202);
	qDebug() << plot3dReader->GetOutput()->GetNumberOfBlocks();
	// 反向更新管线
	plot3dReader->Update();
	qDebug() << plot3dReader->GetOutput()->GetNumberOfBlocks();
	vtkDataSet* plot3dOutput = (vtkDataSet*)(plot3dReader->GetOutput()->GetBlock(0));


	// 2. filter
	// 提取作为多边形几何(点,线,表面)的栅格的一部分
	vtkSmartPointer<vtkStructuredGridGeometryFilter> plane = vtkSmartPointer<vtkStructuredGridGeometryFilter>::New();
	plane->SetInputData(plot3dOutput);
	plane->SetExtent(1, 100, 1, 100, 7, 7);
	// 产生结构化栅格边界的一个线轮廓
	vtkSmartPointer<vtkStructuredGridOutlineFilter> outline = vtkSmartPointer<vtkStructuredGridOutlineFilter>::New();
	outline->SetInputData(plot3dOutput);
	// 颜色映射表
	vtkSmartPointer<vtkLookupTable> lut = vtkSmartPointer<vtkLookupTable>::New();
	lut->SetNumberOfColors(256); // 指定颜色映射表中有多少种颜色
	lut->Build();

	// 3. mapper
	vtkSmartPointer<vtkPolyDataMapper> planeMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
	vtkSmartPointer<vtkPolyDataMapper> outlineMapper = vtkSmartPointer<vtkPolyDataMapper>::New();

	// 4. actor
	vtkSmartPointer<vtkActor> planeActor = vtkSmartPointer<vtkActor>::New();
	vtkSmartPointer<vtkActor> outlineActor = vtkSmartPointer<vtkActor>::New();

	// 5. renderer
	vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
	renderer->SetBackground(0.3, 0.6, 0.3); // Background Color: Green

	// 6. connect
	planeMapper->SetLookupTable(lut);
	planeMapper->SetInputConnection(plane->GetOutputPort());
	planeMapper->SetScalarRange(plot3dOutput->GetScalarRange()); // 设置标量值的范围
	outlineMapper->SetInputConnection(outline->GetOutputPort());
	planeActor->SetMapper(planeMapper);
	outlineActor->SetMapper(outlineMapper);
	renderer->AddActor(planeActor);
	renderer->AddActor(outlineActor);

	this->_pVTKWidget->renderWindow()->AddRenderer(renderer);
	this->_pVTKWidget->renderWindow()->Render();
}

VTKColorMapping::~VTKColorMapping()
{}

本程序采用 vtkMultiBlockPLOT3DReader 读取数据,它是一个读取器对象,用于读取 PLOT3D 格式的文件并在输出时生成结构化网格。本程序读取了 combxyz.bin 和 combq.bin 两个文件。

读取完之后,需要 plot3dReader->Update() 来更新数据源对象,我们在更新前后分别使用 plot3dReader->GetOutput()->GetNumberOfBlocks() 打印了数据源的块数,更新前是 0,更新后变为 1。

之后,从 plot3dReader 的输出中取出下标为 0 的块作为 plot3dOutput。创建一个 vtkStructuredGridGeometryFilter 类型的过滤器 plane,它可以提取作为多边形几何(点,线,表面)的栅格的一部分,使用 plane->SetExtent(1, 100, 1, 100, 7, 7) 提取指定3D范围的数据;还创建了一个 vtkStructuredGridOutlineFilter 类型的过滤器 outline,它可以产生结构化栅格边界的一个线轮廓。这两个过滤器的输入都是 plot3dOutput。新建一个颜色映射表 lut,指定颜色映射表中有256种颜色,使用 lut->Build() 把这个颜色映射表构建好。

对 plane 和 outline 分别创建 mapper 和 actor,planeMapper 还需要设置 lut 和标量值的范围,都绑定到渲染器上,就可以在屏幕上显示了。

运行结果:

在这里插入图片描述

资源下载

https://github.com/UestcXiye/VTKColorMapping

参考

  1. http://cppdebug.com/archives/242
  2. https://blog.youkuaiyun.com/Littlehero_121/article/details/131204958
  3. https://shenchunxu.blog.youkuaiyun.com/article/details/54696460
  4. https://blog.youkuaiyun.com/webzhuce/article/details/78077561
基于vtk.js的轻量级vtp文件在线可视化方案 本文介绍了基于vtk.js的轻量级vtp文件在线可视化方案,详细解析了vtk.js在处理科学计算数据格式时的独特优势,包括原生支持vtp文件解析、优化的内存管理和渲染管线。通过实战代码示例展示了如何快速搭建vtp查看器,并提供了性能优化、高级功能扩展及跨平台兼容的解决方案,帮助开发者高效实现Web端3D模型可视化。 阅读详情

相关推荐

VTK编程指南<十四>:VTK图像颜色映射

VTK编程指南<十四>:VTK图像颜色映射

欧特GO 1322

VTK颜色映射处理

颜色查找表我们可以手动创建一个颜色查找表,如果没有创造的话,贴心的vtk会自动为我们生成一个默认的颜色查找表,颜色查找表中允许我们自由设定颜色值。vtkLookupTable可以帮助我们来完成这个工作,同时,设定了颜色数量时,SetTabValue()方法可以将颜色值插入到指定的位置。另外,SetScalarRange()告诉我们采取什么方法映射,标量值大于最大值的将被归为最大值,标量值小于最小值...

sinat_23619409的博客 1万+

VTK-API_10:使用 vtkCellData 添加单元属性并颜色映射渲染

理解 是什么;学会如何向网格的单元(如三角形、四边形、体素等)添加属性;使用这些属性进行颜色映射,实现基于单元的可视化。 是 VTK 中存储单元(Cell)属性的数据结构;与 类似,但数据是绑定在每一个“单元”上的,而不是“点”上;常用于表示每个单元的标量或矢量值,如应力、材料编号、分类标签等。该示例创建一个平面四边形网格(2x2),每个单元被赋一个不同的标量值,用于颜色映射。 🖼️ 效果说明 网格由 4 个单元组成,每个单元有不同的颜色;颜色来自绑定到 上的标量值;渲染结果表现为“

yumeiguo的博客 194

VTK图形处理之颜色映射

颜色映射  颜色映射的操作对象是数据集中的标量属性。它是一种常用的 标量算法。它会根据数据集中各个部分不同的标量值,对各个部分上不同的颜色。与此相关的另一种上色方法是控制演员的颜色属性,但这样整个图形只有单一的颜色,这显然没有颜色映射方法灵活。   创建多边形数据集程序运行 结果显示的彩色立方体就用到了颜色映射。由于对 立方体的6个顶点设置了不同的标量值(点id),所以这6个点的颜色不同。至于立方

阿兵-AI医疗的专栏 8084

细胞力学仿真软件:MCell_(10).模拟结果的可视化

假设我们希望在可视化中使用自定义的颜色映射来区分不同类型的分子。加载VTK文件打开ParaView,加载生成的VTK文件,例如。设置颜色映射在“Properties”面板中,选择“Coloring”选项卡。选择“Molecule Type”作为颜色映射的变量。点击“Edit”按钮,进入颜色映射编辑器。在颜色映射编辑器中,可以自定义每种分子的颜色。例如,将分子A设置为红色,将分子B设置为蓝色。应用设置点击“Apply”按钮应用颜色映射设置。点击“Play”按钮播放动画,查看不同颜色的分子分布。

kkchenjj的博客 188

Doris副本修复实战:从状态机到手动修复的完整指南

在分布式数据库系统中,多副本机制是实现高可用与数据一致性的核心技术。其原理是通过在不同节点存储数据的多个拷贝,确保部分节点故障时服务仍可继续。这项技术的核心价值在于保障数据可靠性,并支撑在线分析处理(OLAP)等对数据一致性要求高的应用场景。当副本出现损坏、丢失或版本不一致时,系统通常依赖自动修复机制,但在元数据损坏、多副本同时故障等复杂场景下,自动修复可能失效,需要深入理解副本状态机并借助手动工具介入。本文将聚焦Doris数据库,解析Tablet副本状态流转(如BAD、VERSION_ERROR),并详细

weixin_32288959的博客 460

第05章-可视化技术(1)

【译者:这个系列教程是以Kitware公司出版的《VTK User’s Guide -11th edition》一书作的中文翻译(出版时间2010年,ISBN: 978-1-930934-23-8),由于时间关系,我们不能保证每周都能更新本书内容,但尽量做到一周更新一篇到两篇内容。敬请期待^_^。欢迎转载,另请转载时注明本文出处,谢谢合作!同时,由于译者水平有限,出错之处在所难免,欢迎指出订正!】

东灵工作室 7865

【C++PTA】6-1 Point类的运算 (10 分)

定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout<<p<<endl;可以输出该点对象的坐标。 函数接口定义: 实现Point类。 裁判测试程序样例: /* 请在这里填写答案 */ int main(int argc, char const *argv[]) { P

libertye的博客 2367

vtk用户指南 第五章 可视化技术

在前一章中介绍了一些渲染和交互数据的基本工具。在本章中,我们将向您展示各种可视化技术。这些技术(作为过滤器实现)根据它们操作的数据类型进行组织。一些过滤器是通用的,可以应用于任何类型的数据——那些接受vtkDataSet类(或任何子类)输入的过滤器。许多过滤器更专门于它们接受的输入类型(例如,vtkPolyData)。有一类过滤器——那些接受vtkImageData类型输入的过滤器(或其过时的子类vtkStructuredPoints)——在本章中没有提到。相反,这种类型的过滤器将在下一章(第103页的“图

qq_39966730的博客 1661

PyMOL下载安装教程(附安装包)2025最新版(PyMOL 3.0.3)

本文详细介绍了Windows系统下PyMOL分子建模软件的安装教程。主要内容包括:提供安装包下载链接,强调需关闭杀毒软件;分步骤讲解管理员身份运行安装程序、接受协议、选择安装路径等安装流程;重点说明如何配置隐藏文件夹ProgramData中的许可证文件;最后提供基础使用技巧和常见问题解决方案。该教程适用于需要制作高质量分子结构图的科研人员和新手用户,帮助完成软件部署并顺利开展工作。

progalchemist的博客 3798

xhs私信协议分析

之前分析过xhs的shield算法,今天再聊聊xhs的私信,文章仅供学习参考研究交流,如有侵权请联系删帖。经过抓包分析发现私信接口并不是走的http协议,而是socket协议。而要获取socket包则需要使用wireshark软件1、protobuf的包体中的序号7,多次验证后发现文字信息的需要需要固定成12、protobuf的包体中的序号12,多次验证后发现文字信息的需要需要固定成1后续有时间的话,再研究一下视频和图片格式的私信协议,这次就分析到这里吧。

佛系更新... 3486

第05章 05 VTK几个颜色映射相关算法

VTK几个颜色映射相关算法

捕鲸叉的专栏 505

ABB机器人与西门子PLC、工业相机联合实现无序抓取的完整调试方案

将此方案导入系统后,逐步执行调试,确保各环节信号正常触发,即可实现高效无序抓取!

CHUXUEZHE8210的博客 1993

VTK 曲面构建+颜色映射

Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。 VTK编程中主要用到的几个对象 vtkRenderer ,vtkRenderWindow,vtkActor,vtkMapper,其渲染场景如下图所示(图片来自东灵工作室博客) 在VTK的封装类中有一个专门为用...

weixin_34216196的博客 1262

SMPLify-X关键点映射与OpenPose格式转换实战

本文深入解析了SMPLify-X与OpenPose之间关键点映射与格式转换的实战方法。针对SMPL、SMPL-H、SMPLX等参数化人体模型与OpenPose 2D姿态估计标准之间的数据鸿沟,文章详细对比了双方的关键点定义差异,并提供了核心的Python转换代码与映射表构建思路。通过清晰的步骤讲解与调试技巧,帮助开发者实现3D关节数据到OpenPose标准格式的高效、准确转换,为动作捕捉、3D姿态估计等应用奠定数据基础。

weixin_29046035的博客 166

uniapp - 解决在线预览PDF文件空白打不开的问题,无论是后端下载二进制文件流pdf还是本地插件或JS预览查看打开白屏不显示,详细排查解决(适用于移动端H5网页、安卓/苹果app、微信小程序)

uniapp App端 实现pdf文件预览打开白屏解决,uniapp 在线预览pdf打开一片空白,跨域白屏,uni-app中使用WebView预览PDF文件打开空白,微信小程序(uniapp)预览PDF空白怎么办,下载PDF文件流后打开空白或无法打开的问题,Uniapp H5网页下载二进制pdf文件页面空白以及解决文件损坏打不开的情况,Uniapp app在线预览pdf文件流,PDF加载出来怎么办,服务器后端返回PDF文件流后前端进行下载但打开后一片白屏,解决pdf文件流,预览全是空白页,pdf文件流,下载

🏆 前端领域优质创作者 1万+

VTK学习笔记七

可视化技术 过滤器产生各种输出类型,并且输出类型没必要和输入类型一致 不同过滤器可以被组合起来形成复杂的数据流水线 可视化vtkDataSet类型数据 包含vtkDataSet及其子类型(vtkPolyData,vtkImageData,vtkStructuredGrid,vtkRectilinearGrid,vtkUnstructuredGrid)数据可视化的相关方法 vtkDataSet...

tianzhiyi1989sq的博客 1506

自动驾驶算法-滤波器系列(三)——不同运动模型(CV、CA、CTRV、CTRA)的建模和推导

CV & CA & CTRV & CTRA1. CV模型2. CA模型3. CTRV模型4. CTRA模型 1. CV模型 2. CA模型 3. CTRV模型 4. CTRA模型

weixin_41480034的博客 2万+

VTK 图形基本操作进阶_符号化操作与模型区率计算

1.符号化Glyphing再谈 上一篇帖子提到一个事,就是用符号化操作显示单元的法向量。 模型的法向量数据是向量数据,因此法向量不能像前面讲到的通过颜色映射来显示。但是可以通过符号化(Glyphing)技术将法向量图形化显示。Glyphing是一种基于图形的可视化技术,这些图像可以是简单的基本图形,如具有方向的椎体,也可以是更加复杂的图像。VTK中就是应用vtkGlyph3D类实现该功能的,并且可以支持Glyphing图形的缩放、着色、设置空间姿态等。使用该类时,需要接受两个输入:一个是需要显示的几何

biyusr的专栏 807

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ParaView与VTK深度整合:解锁高级数据处理技巧

ParaView是一款基于VTK(Visualization Toolkit)的强大数据可视化与分析应用程序,它将VTK的强大功能与用户友好的界面完美结合,为科研人员和工程师提供了高效处理复杂数据的解决方案。无论是流体动力学模拟、医学影像分析还是气象数据可视化,ParaView与VTK的深度整合都能帮助用户轻松应对各种数据挑战。 ## 一、ParaView与VTK整合的核心优势 ParaVie

gitblog_00682的博客 800

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ScalarBarWidget 标量颜色映射

本文只是教程内容的一小段,因博客字数限制,故进行拆分。本段代码主要涉及的有①标量与颜色的映射并构建映射表。

BoBoZz19的博客 76

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VTK教程之十三 可视化基础算法-位…

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <div id="content" class= "content mod-cs-content text-content clearfix">   位移图主要描

woashizhangsi的专栏 1412

tinycolormap 开源项目使用教程

tinycolormap 开源项目使用教程 1、项目介绍 tinycolormap 是一个用 C++11 编写的头文件库,专门用于生成各种颜色映射(colormap)。它是一个轻量级的库,没有任何外部依赖,只需要 C++11 标准库即可使用。tinycolormap 支持多种常见的颜色映射类型,如 Viridis、Heat、Jet 等,并且可以生成量化的颜色映射,适用于数据可视化、图像处理等领域。...

gitblog_00374的博客 976

从入门到精通:Mayavi的高级特性与自定义可视化教程

Mayavi是一款强大的Python科学数据3D可视化库,能够帮助科研人员和工程师将复杂数据以直观的三维形式呈现。本文将带你探索Mayavi的核心功能、高级特性及自定义可视化技巧,让你的数据可视化能力提升到新高度。 ## 一、Mayavi简介:Python科学可视化的瑞士军刀 🛠️ Mayavi作为基于VTK(Visualization Toolkit)的Python封装库,提供了交互式3D

gitblog_00199的博客 931

paraview vtk文件乱码_Matlab处理数据导出Paraview可读的vtk文件(二)

由于我在用SPH方法仿真时用的是FORTRAN语言,并且没有找到直接输出vtk文件的代码,因此偷懒通过MATLAB转换一下数据。用到的Matlab子程序可通过一下链接找到。假设我每个粒子输出的格式按照下面输出的x(i), y(i), z(i), vx(i), vy(i), vz(i), p(i), rho(i), phase(i)含义为每个粒子的坐标,速度,压强,密度,相。vtkwrite(‘ou...

weixin_39969568的博客 152

TransientHDFReader读取并动画化显示一个包含瞬态(时间序列)数据的 vtkhdf 文件

一:主要的知识点1、说明本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:https://mp.youkuaiyun.com/mp_blog/creation/editor/1518042582、知识点纪要本段代码主要涉及的有vtkhdf仿真数据局文件的读取,vtk的交互,以及标量与颜色如何建立对应关系等知识点。

BoBoZz19的博客 249
上一篇: VTK 相机类:vtkCamera
下一篇: Leetcode2462. 雇佣 K 位工人的总代价
UestcXiye
博客等级 码龄8年 9029粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值