vtk点云数据的显示[转]



#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkPoints.h"
#include "vtkPolyVertex.h"
#include "vtkUnstructuredGrid.h"
#include "vtkDataSetMapper.h"

int main(int argc, char* argv[])
{
    FILE *fp = NULL;
    if (argc==1)
    {
        if ((fp=fopen("venus.asc","r"))== NULL)
        {
            printf("Error in open file mbr.asc\n");
            return 1;
        }
    }
    else
    {
        if ((fp=fopen(argv[1],"r"))== NULL)
        {
            printf("Error in open file %s\n", argv[1]);
            return 1;
        }
    }

    vtkRenderer *ren=vtkRenderer::New();
    double arr[3];

    vtkPoints * points = vtkPoints::New();
    int n=0;
    while(!feof(fp))//首先读取点云数据到点表points同时指定点对应的id:
    {
        int ret=fscanf(fp,"%lf %lf %lf",&arr[0],&arr[1],&arr[2]);
        if(ret!=3)
            break;
        points->InsertPoint(n,arr[0],arr[1],arr[2]);
        n++;
    }
    printf("%d\n", n);
    fclose(fp);

    vtkPolyVertex * polyvertex = vtkPolyVertex::New();
    polyvertex->GetPointIds()->SetNumberOfIds(n);
    int i=0;
    for(i=0;i<n;i++)//建立拓扑关系
    {
        polyvertex->GetPointIds()->SetId(i,i);
    }

    vtkUnstructuredGrid * grid=vtkUnstructuredGrid::New();
    grid->SetPoints(points);
    grid->InsertNextCell(polyvertex->GetCellType(),
            polyvertex->GetPointIds());

    vtkDataSetMapper *map1 = vtkDataSetMapper::New();
    map1->SetInput(grid);

    vtkActor *actor1 = vtkActor::New();
    actor1->SetMapper(map1);
    actor1->GetProperty()->SetColor(0.194,0.562, 0.75);

    ren->AddActor(actor1);
    ren->SetBackground(1, 1, 1);

    vtkRenderWindow* win=vtkRenderWindow::New();
    win->AddRenderer(ren);
    win->SetSize(400,400);
    win->BordersOn();
    //win->FullScreenOn();
    //win->HideCursor();

    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();

    iren->SetRenderWindow(win);
    vtkInteractorStyleTrackballCamera *style =
        vtkInteractorStyleTrackballCamera::New();
    iren->SetInteractorStyle(style);   

    iren->Start();
    ren->Delete();
    win->Delete();
    iren->Delete();

    return 0;
}
编译命令为
        gcc -o 可执行文件名 源文件名 -I 头文件目录 需要的库文件 -Wno-dprecated:

        gcc -o cloud cloud.cxx -I /usr/include/vtk-5.0 /usr/lib/libvtkRendering.so -Wno-deprecated

运行:

        ./cloud venus.asc //数据文件

转为:http://www.cnblogs.com/lilun/archive/2013/06/10/3131240.html

vtk点云数据的显示[转]

时间: 2024-08-09 02:23:50

vtk点云数据的显示[转]的相关文章

2018年我们将面临哪些云数据安全问题?

总部位于密苏里州圣路易斯的TierPoint公司,是一家私人投资支持的主机托管和混合云服务供应商,目前已迅速成为数据中心行业一支不可忽视的力量.TierPoint经营着39个数据中心,数据中心空间共计超过60万平方英尺,遍布美国18个州21个市场.经过仅仅5年的发展,它从一个小型本地数据中心整合者,演变成为一家为多个区域市场提供混合IT解决方案的成熟数据中心供应商. 对于数据安全问题,TierPoint也有自己的见解.2018年我们将面临哪些云数据安全问题?TierPoint提出了以下5种威胁.

zabbix图形页面数据字段显示为方框或乱码

摘要: 本文讲的是zabbix图形页面数据字段显示为方框或乱码, zabbix图形页面数据字段显示为方框或乱码 1.因zabbix使用的DejaVuSan.ttf字体,不支持中文,导致中文出现乱码,它的位置(A)为:/var/www/html/zabbix/fonts: 1.因zabbix使用的DejaVuSan.ttf字体,不支持中文,导致中文出现乱码,它的位置(A)为:/var/www/html/zabbix/fonts: 2.解决办法就是使用一个支持中文的字体,如果你手上没有相关字体的文件

深度相机生成点云数据的原理

深度相机生成点云数据的原理 2019年8月4日 16:26:40 原理 RGB-D 图像中的rgb图片提供了像素坐标系下的x,y坐标,而深度图直接提供了相机坐标系下的$Z$坐标,也就是相机与点的距离. 根据 RGB-D 图像的信息和相机的内参,可以计算出任何一个像素点在相机坐标系下的坐标. 根据 RGB-D 图像的信息和相机的内参与外参,可以计算出任何一个像素点在世界坐标系下的坐标. 相机视野范围内,相机坐标系下的障碍物点的坐标,就是点云传感器数据,也就是相机坐标系下的点云数据.点云传感器数据可

SDN与NFV技术在云数据中心的规模应用探讨

Neo 2016-1-29 | 发表评论 编者按:以云数据中心为切入点,首先对SDN领域中的叠加网络.SDN控制器.VxLAN 3种重要技术特点进行了研究,接下来对NFV领域中的通用服务器性能.服务链两类关键问题展开具体分析.最后,阐述了前期开展的SDN/NFV技术试验工 作进展及相关结论,并对VDC应用产品进行了展望. 1 引言 伴随着云计算技术的兴起,数据趋于大集中,传统电信系统网络架构成为阻碍云数据中心发展的巨大桎梏.为满足数据中心在云计算环境下的虚拟网络资源调度和共享需求,未来的数据中心

Delphi中多线程用消息实现VCL数据同步显示

Delphi中多线程用消息实现VCL数据同步显示 Lanno Ckeeke 2006-5-12 概述: delphi中严格区分主线程和子主线程,主线程负责GUI的更新,子线程负责数据运算,当数据运行完毕后,子线程可以向主线程式发送消息,以便通知其将VCL中的数据更新. 实现: 关键在于消息的发送及接收.在消息结构Tmessage中wParam和lParam类型为Longint,而指针类型也定义为Longint,可以通过此指针来传递自己所感兴趣的数据.如传递字符数组: 数组定义: const MA

【Qt5开发及实例】24、数据柱形图显示

数据柱形图显示 1.我们首先把这个这个视图的表格部分表示出来 mainwindow.h /** * 书本:[Qt5开发及实例] * 功能:数据柱形图显示,这个类是表格显示 * 文件:mainwindow.h * 时间:2015年1月28日18:50:54 * 作者:cutter_point */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QStandardItemModel>

EXTJS中grid的数据特殊显示,不同窗口的数据传递

//EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { var USED_AMOUNT_ = 0; for (var i = 0; i < matMonthPlanHisList.length; i++) { if(matMonthPlanHisList[i].MAT_NO_ == record.get('MAT_NO_')){ USED_AMOUNT_

String强制转换为Date,freemarker标签里date数据的显示问题

String强制转换为Date,freemarker标签里date数据的显示问题 http://blog.sina.com.cn/s/blog_617f5d090101ut63.html (2014-05-16 16:44:34) 转载▼   分类: 工作 解决了两个问题 1. String强制转换为Date SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");    String dateStr = request.g

华云数据助力云视睿博打造视频云服务

近日,华云数据技术服务有限公司与北京云视睿博传媒科技有限公司在北京签署合作协议.双方将合力打造互联网视频云服务,为企业用户提供一站式互联网高清视频直播.点播支撑服务.使用该服务,用户无需额外购买硬件服务器.存储.IDC带宽等即可轻松开展高质量的互联网视频播出业务. 作为国内最大的综合性云计算服务提供商,华云数据在国内拥有超过15个城市20个数据中心上万台物理服务器集群,有着十多个大型数据中心建设和运维经验,在全国骨干节点拥有高标准的专业化数据中心,可以提供基于华云数据中心和云计算平台的数据中心业