代码先锋网 代码片段及技术文章聚合

VTK读取.obj格式或.ply格式并三维显示

技术标签: VTK_9.0.0  c++  vtk

VTK读取.ply根式并三维显示代码如下:

#define vtkRenderingCore_AUTOINIT 2(vtkRenderingOpenGL2, vtkInteractionStyle)
#include <vtkOBJReader.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSmartPointer.h>
#include <vtkPLYReader.h>
#include <string>

int main()
{
	//std::string filename = "Greedy_Delaunay_knee_piece.obj";   //Greedy_Delaunay_knee_piece   bunny-5000
	//vtkSmartPointer<vtkOBJReader> reader =
	//	vtkSmartPointer<vtkOBJReader>::New();
	//reader->SetFileName(filename.c_str());
	//reader->Update();

	std::string filename = "Greedy_Delaunay_knee_piece.ply";   //Greedy_Delaunay_knee_piece   bunny-5000
	vtkSmartPointer<vtkPLYReader> reader =
		vtkSmartPointer<vtkPLYReader>::New();
	reader->SetFileName(filename.c_str());
	reader->Update();

	vtkSmartPointer<vtkPolyDataMapper> mapper =
		vtkSmartPointer<vtkPolyDataMapper>::New();
	mapper->SetInputConnection(reader->GetOutputPort());

	vtkSmartPointer<vtkActor> actor =
		vtkSmartPointer<vtkActor>::New();
	actor->SetMapper(mapper);

	vtkSmartPointer<vtkRenderer> renderer =
		vtkSmartPointer<vtkRenderer>::New();
	renderer->AddActor(actor);
	renderer->SetBackground(.3, .6, .3);

	vtkSmartPointer<vtkRenderWindow> renderWindow =
		vtkSmartPointer<vtkRenderWindow>::New();
	renderWindow->AddRenderer(renderer);

	vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
		vtkSmartPointer<vtkRenderWindowInteractor>::New();
	renderWindowInteractor->SetRenderWindow(renderWindow);
	renderWindow->Render();
	renderWindowInteractor->Start();

	return 0;
}

VTK读取.obj根式并三维显示代码如下:

#define vtkRenderingCore_AUTOINIT 2(vtkRenderingOpenGL2, vtkInteractionStyle)
#include <vtkOBJReader.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSmartPointer.h>
#include <vtkPLYReader.h>
#include <string>

int main()
{
	std::string filename = "Greedy_Delaunay_knee_piece.obj";   //Greedy_Delaunay_knee_piece   bunny-5000
	vtkSmartPointer<vtkOBJReader> reader =
		vtkSmartPointer<vtkOBJReader>::New();
	reader->SetFileName(filename.c_str());
	reader->Update();

	//std::string filename = "Greedy_Delaunay_knee_piece.ply";   //Greedy_Delaunay_knee_piece   bunny-5000
	//vtkSmartPointer<vtkPLYReader> reader =
	//	vtkSmartPointer<vtkPLYReader>::New();
	//reader->SetFileName(filename.c_str());
	//reader->Update();

	vtkSmartPointer<vtkPolyDataMapper> mapper =
		vtkSmartPointer<vtkPolyDataMapper>::New();
	mapper->SetInputConnection(reader->GetOutputPort());

	vtkSmartPointer<vtkActor> actor =
		vtkSmartPointer<vtkActor>::New();
	actor->SetMapper(mapper);

	vtkSmartPointer<vtkRenderer> renderer =
		vtkSmartPointer<vtkRenderer>::New();
	renderer->AddActor(actor);
	renderer->SetBackground(.3, .6, .3);

	vtkSmartPointer<vtkRenderWindow> renderWindow =
		vtkSmartPointer<vtkRenderWindow>::New();
	renderWindow->AddRenderer(renderer);

	vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
		vtkSmartPointer<vtkRenderWindowInteractor>::New();
	renderWindowInteractor->SetRenderWindow(renderWindow);
	renderWindow->Render();
	renderWindowInteractor->Start();

	return 0;
}

参考博文:

1、VTK:读取obj文件,使用vtkMassProperties计算obj三维模型的体积和面积

版权声明:本文为weixin_42291376原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42291376/article/details/105904251

智能推荐

PCL:读取ply,pcb格式文件显示效果

在实验和项目中点云数据的存储和展现的方式通常是ply文件,尤其是海量点云数据,但是在PCL程序中处理的常常是pcd文件,因此首先需要使用程序将ply文件转换为pcd文件,再读取pcb对象  ...

PCL中ply格式显示

参考: https://blog.csdn.net/weixin_34273481/article/details/86272869 http://www.pcl-users.org/Reading-ply-wih-normal-data-td4025845.html Photoneo和zivid两种传感器: Photoneo zivid  ...

python vtk jpg,dcm格式文件读取显示裁剪

python dcm图像的读取与显示,vtk jpg,dcm序列图像的读取与显示 小白最近在做有关医学图像处理方面的图像分割与三维重建,其中python提供的vtk,itk库都是功能非常强大的,在此期间也遇到一些问题,解决后记录一下,大家一起学习,希望大神也可以帮忙指点。 1.有关dcm文件的读取与显示 这里我用到了一个归一化函数,因为很多.dcm图像的像素值会超出0-255,归一化之后会方便我们...

三维图形数据格式 STL的 读取

在wiki上有对STL图形文件格式的详细描述。 http://en.wikipedia.org/wiki/STL_(file_format) STL文件格式分为两种:ASCII字符格式,及二进制格式。 ASCII字符格式的格式如下: 开头一行: 接下来,是三角片的数据格式: 结束行标志: 二进制格式数据: 因为字符格式的STL文件比较大,占空间,因为有了二进制格式,且二进制的存储格式与ASCII的...

使用SimpleITK读取NII格式三维图像注意事项

SimpleITK Python中SimpleITK被广泛用于医学图像的处理任务中,功能非常强大,但是使用的时候还需注意,尤其在图像读取时一定要注意维度。 读取NII格式的图像 上面的代码很简单,不多做解释,加入我们在最后加上 如果输出(300,200,120),其中分别表示该三维体数据在Z轴,Y轴,X轴上的尺寸,这和MATLAB以及ImageJ都有点不同,后续处理一定要注意。...

猜你喜欢

MATLAB读取二进制格式的三维数据体

在地震勘探的科学计算中,我们经常用到三维数据体的读写,在MATLAB下怎么读取三维的数据体呢?其实很简单,代码如下:以上就是MATLAB中读取二进制格式的三维数据体的基本方向,希望对大家有用。...

VTK读取三维Mhd文件,并把数据存放在三维数组里

全部VTK程序设计系列博客 见 VTK程序设计系列 mhd文件包含一个.mhd用来存放信息,和一个.raw文件来存放数据。 我们用记事本随便打开一个三维的Mhd文件: 可以看到维数是3,二进制数据,并且是压缩过的数据。三维的每个数据在实际空间中的距离分别为: 0.976562 1.4 0.976562 。 数据的大小是256*230*256的。 我们记住这些数据,然后开始写程序: 注意因...

VTK 三维数据计算体积

 这个是针对分割后的数据,在VTK窗口可以显示出你想要的部分,然后通过面绘制计算体积。 我实验了一下,能出现结果!                          ...

三维图形生成、建模、重建、交互显示教程:VTK和OPENGL

1,读取.mha文件 方法有:vtkMetaImageReader()       2,渲染 方法有:vtkRenderer(),vtkRenderWindow() 先创建渲染,再建立渲染窗口   3,交互,如鼠标拖拉旋转。 方法:vtkRenderWindowInteractor() (未完待续)    ...

三维数据格式3DTiles

一、3D Tiles来源和介绍 它是Cesium于2016年3月定义的一种三维模式瓦片数据结构,它将海量的三维数据用分块、分层的形式组织起来,很大程度上减轻了浏览器的负担,除此外还提供了细节层次的LOD(Levels of Detail 多细节层次)功能,在远观时,降低模型的面数和精度,拉近后再将细节加载出来,大大增强了页面的加载速度,更可以用于跨桌面使用,使得web端和移动应用程序共享,主要适用...