PCL PCLVisualizer類視覺化方法

2021-08-19 01:15:25 字數 3462 閱讀 3936

****出處:**

/** filename:   pcl_visualizer_demo.cpp

** date: 2018-4-19

**description:

**/#include "stdafx.h"

#include #include #include #include #include #include #include //提示資訊

void

printusage(const char* progname)

boost::shared_ptr******vis(pcl::pointcloud::constptr cloud)

boost::shared_ptrrgbvis(pcl::pointcloud::constptr cloud)

boost::shared_ptrcustomcolourvis(pcl::pointcloud::constptr cloud)

boost::shared_ptrnormalsvis(

pcl::pointcloud::constptr cloud, pcl::pointcloud::constptr normals)

boost::shared_ptrshapesvis(pcl::pointcloud::constptr cloud)

boost::shared_ptrviewportsvis(

pcl::pointcloud::constptr cloud, pcl::pointcloud::constptr normals1, pcl::pointcloud::constptr normals2)

unsigned int text_id = 0;

void keyboardeventoccurred(const pcl::visualization::keyboardevent &event,

void* viewer_void)

text_id = 0; }}

void mouseeventoccurred(const pcl::visualization::mouseevent &event,

void* viewer_void)

}boost::shared_ptrinteractioncustomizationvis()

int main(int argc, char* argv)

bool ******(false), rgb(false), custom_c(false), normals(false),

shapes(false), viewports(false), interaction_customization(false);

if (pcl::console::find_argument(argc, argv, "-s") >= 0)

else if (pcl::console::find_argument(argc, argv, "-c") >= 0)

else if (pcl::console::find_argument(argc, argv, "-r") >= 0)

else if (pcl::console::find_argument(argc, argv, "-n") >= 0)

else if (pcl::console::find_argument(argc, argv, "-a") >= 0)

else if (pcl::console::find_argument(argc, argv, "-v") >= 0)

else if (pcl::console::find_argument(argc, argv, "-i") >= 0)

else

// 建立點雲例子

pcl::pointcloud::ptr basic_cloud_ptr(new pcl::pointcloud);

pcl::pointcloud::ptr point_cloud_ptr(new pcl::pointcloud);

std::cout << "genarating example point clouds.\n\n";

// 在z軸上提取乙個橢圓,點雲顏色將逐漸從紅色變為綠色,變為藍色。

uint8_t r(255), g(15), b(15);

for (float z(-1.0); z <= 1.0; z += 0.05)

if (z < 0.0)

else

}basic_cloud_ptr->width = (int)basic_cloud_ptr->points.size();

basic_cloud_ptr->height = 1;

point_cloud_ptr->width = (int)point_cloud_ptr->points.size();

point_cloud_ptr->height = 1;

// 計算表面法向,搜尋半徑為0.05m

pcl::normalestimationne;//輸入為點雲,輸出為點雲法向

ne.setinputcloud(point_cloud_ptr);

//定義搜尋樹

pcl::search::kdtree::ptr tree(new pcl::search::kdtree());

ne.setsearchmethod(tree);

pcl::pointcloud::ptr cloud_normals1(new pcl::pointcloud);

ne.setradiussearch(0.05);

ne.compute(*cloud_normals1);

//計算表面法線 半徑為0.1

pcl::pointcloud::ptr cloud_normals2(new pcl::pointcloud);

ne.setradiussearch(0.1);

ne.compute(*cloud_normals2);

boost::shared_ptrviewer;

if (******)

else if (rgb)

else if (custom_c)

else if (normals)

else if (shapes)

else if (viewports)

else if (interaction_customization)

//迴圈

while (!viewer->wasstopped())

system("pause");

return 0;

}

實驗效果:

sqlite 視覺化 千萬級poi點視覺化方案

本文使用 zhihu on vscode 創作並發布 這篇文章主要對前段時間的兩千萬個點資料視覺化展示問題進行乙個總結,經過兩個周左右的努力,在當前階段,採用快取加多執行緒的方式很好的解決了千萬級poi點在單機環境下高效的視覺化的問題。專案的總體要求就是,兩千萬左右的資料量下,不使用集群技術,減少硬...

PCLVisualizer視覺化類(4)

部落格 自 使用者經常需要通過多視口比較點雲,如果使用者在同乙個視口繪製點雲,會導致資訊混亂。pclvisualizer視覺化類允許使用者通過不同視口 viewport 繪製多個點雲,這樣方便對點雲進行比較分析,viewportsvis函式的 演示如何用多視口來顯示點雲計算法線的方法結果對比,如圖1...

資料視覺化 什麼是資料視覺化

資料對應的英文單詞是data,從資訊獲取的角度看,資料是對目標觀察和記錄的結果,是現實世界中的時間 地點 事件 其他物件或概念的描述。不同學者對資料的作用也給出不同的定義,大致分為以下3類 視覺化對應的兩個英文單詞 visualize和visualization。visualize是動詞,描述 生成...