利用文件RGB值渲染点云
来源:互联网 发布:js调用点击事件 编辑:程序博客网 时间:2024/06/05 08:21
今天得到一个文件,格式如下:
1.74 5.50 -130.57 75 74 72
1.45 6.98 -130.55 101 97 85
2.11 4.89 -130.55 142 140 127
10.74 1.94 -133.11 138 138 130
10.76 2.05 -133.06 103 104 99
表示X-Y-Z-R-G-B,需要用RGB来指定每个点的颜色。后来在vtk的示例里面找到了一个类:vtkGlyph3D它的作用是用指定的几何体来代替每一个点,可以利用vtkGlyph3D::SetColorModeToColorByScalar()来设定颜色赋值的模式,即通过scale, scalar or by vector/normal值的大小来指定颜色。至于这里的几何体,我仍然选择的点。既然找到了就先用着吧,我估摸着自己走了弯路,应该还有更简单的方法。还是贴上代码做个笔记吧!
#include <vtkVersion.h>#include <vtkSmartPointer.h>#include <vtkPointData.h>#include <vtkCubeSource.h>#include <vtkPolyData.h>#include <vtkPoints.h>#include <vtkGlyph3D.h>#include <vtkCellArray.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkRenderWindowInteractor.h>#include <vtkUnsignedCharArray.h>#include <vtkInteractorStyleTrackballCamera.h>#include <vtkPointSource.h>#include <vtkIntArray.h>#include <vtkProperty.h>#include <sstream>#include <string>using namespace std;int main(int, char *[]){vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();vtkSmartPointer<vtkUnsignedCharArray> colors = vtkSmartPointer<vtkUnsignedCharArray>::New();colors->SetName("colors");colors->SetNumberOfComponents(3);FILE * fRead;fRead = fopen("C:\\Users\\Administrator\\Desktop\\Output1.txt","r");while(!feof(fRead)){double pt[3];int colr[3];unsigned char te[3];fscanf(fRead,"%lf %lf %lf %d %d %d",pt,pt+1,pt+2,colr,colr+1,colr+2);te[0] = (unsigned char)colr[0];te[1] = (unsigned char)colr[1];te[2] = (unsigned char)colr[2];points->InsertNextPoint(pt);colors->InsertNextTupleValue(te);}// Combine into a polydatavtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();polydata->SetPoints(points);polydata->GetPointData()->SetScalars(colors);// Create anything you want here, we will use a cube for the demo.vtkSmartPointer<vtkPointSource> pointsSource = vtkSmartPointer<vtkPointSource>::New();pointsSource->SetNumberOfPoints(1);vtkSmartPointer<vtkGlyph3D> glyph3D = vtkSmartPointer<vtkGlyph3D>::New();glyph3D->SetColorModeToColorByScalar();//通过scale, scalar or by vector/normal值的大小来指定颜色glyph3D->SetSourceConnection(pointsSource->GetOutputPort());#if VTK_MAJOR_VERSION <= 5glyph3D->SetInput(polydata);#elseglyph3D->SetInputData(polydata);#endifglyph3D->ScalingOff();glyph3D->Update();// Create a mapper and actorvtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(glyph3D->GetOutputPort());vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);//actor->GetProperty()->SetPointSize(10);// VisualizevtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();renderWindowInteractor->SetInteractorStyle(style);renderer->AddActor(actor);renderer->SetBackground(0,0,0); // Background color whiterenderWindow->Render();renderWindowInteractor->Start();return EXIT_SUCCESS;}
0 0
- 利用文件RGB值渲染点云
- VTK利用点云高程渲染点云(+读写文件)
- VTK利用点云高程渲染点云(方法二:vtkUnstructuredGrid)
- VTK利用点云高程渲染点云(方法三:vtkPoltData)
- 利用windows 系统的画图工具获取图片上某一点的颜色RGB值
- 点云渲染与索引
- 利用Opencv读取图片RGB值并存储在txt文件中
- 利用Opencv读取图片RGB值并存储在txt文件中
- 楠哥讲心得之点云渲染
- VTK的点云渲染(C++)
- AO中如何利用style 文件渲染要素
- 一起做RGB-D SLAM (4) 点云拼接
- RGB-D SLAM——点云拼接篇(二)
- 4、RGB-D—点云拼接 joinPointCloud
- 如何得到bitmap某一点像素的RGB值
- 获取某点的RGB三分量的值
- 获取一个图片像素点RGB值的代码
- 如何得到bitmap某一点像素的RGB值
- mysql主从配置及遇到的问题
- 通过常规气象观测数据计算净辐射Rs示意图
- PHP
- Spring中的ApplicationContext与BeanFactory
- MySQL中date、year、datetime、timestamp和time数据类型的区别
- 利用文件RGB值渲染点云
- 关于TCPIP的三次握手和四次挥手的总结
- 作业1
- 姿态结算中旋转计算的基础
- 动态规划:从新手到专家
- VS2013 MFC右键弹出菜单
- xcode7 中到导入ReactiveCocoa框件创建过程 和 解决 Box.swift出错、MutableBox.swift出错
- c#,使用WMI对象获取笔记本电池剩余电量的百分比
- centos 7 安装LAMP+PHPMYADMIN