使用VTK读入点云文件的基础代码:

头文件:

也许不是全部都用到,为了接下来得工程还是全部都包含进去了

  1. #include "vtkRenderer.h"
  2. #include "vtkRenderWindow.h"
  3. #include "vtkRenderWindowInteractor.h"
  4. #include "vtkSphereSource.h"
  5. #include "vtkShrinkFilter.h"
  6. #include "vtkElevationFilter.h"
  7. #include "vtkDataSetMapper.h"
  8. #include "vtkActor.h"
  9. #include "vtkCullerCollection.h"
  10. #include "vtkInteractorStyleTrackballCamera.h"
  11. #include "vtkPolyVertex.h"
  12. #include "vtkUnstructuredGrid.h"
  13. #include <iostream>
  14. #include "vtkPolyDataMapper.h"
  15. #include "vtkScanPointReader.h"
  16. #include "vtkProperty.h"

main部分:

  1. //读取点云数据
  2. void main()
  3. {
  4. FILE *fp = NULL;
  5. fp = fopen( "C:\\test.sp", "r");
  6. if ( fp == NULL)
  7. {
  8. printf("Error in open file test.sp\n");
  9. getchar();
  10. exit(-1);
  11. }else
  12. printf("open scan point success\n");
  13.  
  14. vtkRenderer *ren = vtkRenderer::New();
  15. double arr[3] = {0};
  16.  
  17. vtkPoints *points = vtkPoints::New();
  18.  
  19. int n = 0;
  20. while(!feof(fp))//首先读取点云数据到点表points同时指定点对应的id:
  21. {
  22. int ret=fscanf(fp,"%lf %lf %lf",&arr[0],&arr[1],&arr[2]);
  23. if(ret!=3)
  24. break;
  25. points->InsertPoint(n,arr[0],arr[1],arr[2]);
  26. n++;
  27. }
  28. printf("%d\n", n);
  29. fclose(fp);
  30.  
  31. vtkPolyVertex *polyvertex = vtkPolyVertex::New();
  32. polyvertex->GetPointIds()->SetNumberOfIds(n);
  33.  
  34. int i = 0;
  35.  
  36. for( i = 0;i < n; i++)//建立拓扑关系
  37. {
  38. polyvertex->GetPointIds()->SetId(i,i);
  39. }
  40.  
  41. vtkUnstructuredGrid *grid = vtkUnstructuredGrid::New();
  42. grid->SetPoints(points);
  43. grid->InsertNextCell(polyvertex->GetCellType(),
  44. polyvertex->GetPointIds());
  45.  
  46. vtkDataSetMapper *map1 = vtkDataSetMapper::New();
  47. map1->SetInput(grid);
  48.  
  49. vtkActor *actor1 = vtkActor::New();
  50. actor1->SetMapper(map1);
  51. actor1->GetProperty()->SetColor(1,0, 0);
  52.  
  53. ren->AddActor(actor1);
  54. ren->SetBackground(1, 1, 1);
  55.  
  56. vtkRenderWindow* win=vtkRenderWindow::New();
  57. win->AddRenderer(ren);
  58. win->SetSize(400,400);
  59. win->BordersOn();
  60. //On则运行起来将会是全屏显示
  61. //win->FullScreenOn();
  62. //win->HideCursor();
  63.  
  64. vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
  65.  
  66. iren->SetRenderWindow(win);
  67. vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();
  68. iren->SetInteractorStyle(style);
  69.  
  70. iren->Initialize();
  71. iren->Start();
  72. ren->Delete();
  73. win->Delete();
  74. iren->Delete();
  75.  
  76. }

运行结果:

本文使用的是 vs2005+vtk5.10.1

使用的是vs里面的控制台程序编写。

这样读入点云的方式是最原始的方式。

VS2005+VTK读入点云文件的更多相关文章

  1. PCL学习(一)从PLY文件读入点云数据

    #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #inclu ...

  2. 在c++MFC下用PCL显示操作点云文件 MFC对话框显示操作PCL点云

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/13115873.html 第一步 下载PCL库  我的版本是1.8.1的 你都要MFC下跑PCL ...

  3. 在windows下使用cmd命令全速下载百度云文件

    在windows下使用cmd命令全速下载百度云文件 需要的工具BaiduPCS-GO(链接:https://pan.baidu.com/s/19Sn8gmNi_GZHJwUPu79DPg 密码:gqi ...

  4. 阿里云文件存储(NAS)助力业务系统承载双十一尖峰流量

    2018天猫双11全球狂欢节,全天成交额再次刷新纪录达到2135亿元,其中总成交额在开场后仅仅用了2分05秒即突破100亿元,峰值的交易量达到惊人的高度,背后离不开阿里云大数据计算和存储能力的支撑.在 ...

  5. 为数据计算提供强力引擎,阿里云文件存储HDFS v1.0公测发布

    在2019年3月的北京云栖峰会上,阿里云正式推出全球首个云原生HDFS存储服务—文件存储HDFS,为数据分析业务在云上提供可线性扩展的吞吐能力和免运维的快速弹性伸缩能力,降低用户TCO.阿里云文件存储 ...

  6. 基于 Octotree 的[码云]文件树插件

      之前一直在用github上面的Octotree,现在在用gitee(主要是github的访问速度太慢了).   现在主要转到了gitee上面了,那么有没有基于 Octotree 的[码云]文件树插 ...

  7. 干货 | 玩转云文件存储——利用CFS实现web应用的共享访问

    京东云文件服务(Cloud File Service,以下简称:CFS)是一种高可靠.可扩展.可共享访问的全托管分布式文件系统.它可在不中断应用服务的情况下,根据您对文件系统的使用,按需扩展或缩减,并 ...

  8. VTK 简单点云数据显示绘制

    基于vtkPolyData,绘制时除了输入点坐标,还需要通过setVerts指定点绘制信息. simplePoints.txt的内容为简单的 xyz,如: 20 20 20 20 20 30 20 2 ...

  9. Send竞争对手:百度云一小时,QQ超大附件最多支持2G,邮件附件20M到50M不等(附国外所有storage列表)——痛点是,最大传输2G,最大容量只有3G(和微云不是一回事),转存到微云文件不能超过1G

    QQ邮箱最大可发送50M普通附件(群邮件则限制在2M).此外也可以使用超大附件功能,支持将1G的文件发往任意邮箱.QQ邮箱根据你的QQ邮箱容量的不同制定相应的接受附件限制,包括附件在内,2G用户所发送 ...

随机推荐

  1. day 83 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui

      Vue学习之五DIY脚手架.webpack使用.vue-cli的使用.element-ui   本节目录 一 vue获取原生DOM的方式 二 DIY脚手架 三 vue-cli脚手架的使用 四 we ...

  2. 重写、super关键字、final关键字、多态、子类型转换、抽象的初步了解

    重写 含义 在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖. 重写与重载的 ...

  3. 阿里云服务器安装Python3.8

    1.操作系统: CentOS 7.4 64位 2.下载python安装包 wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.x ...

  4. vue-router的访问权限管理

    路由守卫(路由钩子.拦截器) vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的. 可以不登录直接进入系统 ...

  5. MediatR 知多少 - 简书

    原文:MediatR 知多少 - 简书 引言 首先不用查字典了,词典查无此词.猜测是作者笔误将Mediator写成MediatR了.废话少说,转入正题. 先来简单了解下这个开源项目MediatR(作者 ...

  6. 01.MyBatis快速入门

    1.下载jar包 Mybatis包+数据库驱动包 https://github.com/mybatis/mybatis-3/releases 2.新建Java工程并导入jar包 3.创建数据库与表 C ...

  7. AndroidStudio 添加翻译插件

    添加方式 第一步 在AndroidStudio的菜单栏里找到 File > Settings > 点击 . 第二步 点击Plugins > 在点击Marketplace 等待插件列表 ...

  8. 【10.6NOIP普及模拟】MATH——枚举法

    [10.6NOIP普及模拟]MATH 题目简化 一个数列任意删k个数,是得数列中最大的差+最小的差最小 思路 程序1--时超40 暴搜+剪枝. 用类似排列组合的方式,暴搜删或不删 剪枝就是看看剩下的数 ...

  9. Python爬虫笔记【一】模拟用户访问之设置请求头 (1)

    学习的课本为<python网络数据采集>,大部分代码来此此书. 网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行.所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人 ...

  10. <scrapy爬虫>爬取猫眼电影top100详细信息

    1.创建scrapy项目 dos窗口输入: scrapy startproject maoyan cd maoyan 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # -*- ...