3d激光雷达开发(绘制长方体)

Posted 费晓行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3d激光雷达开发(绘制长方体)相关的知识,希望对你有一定的参考价值。

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        不管是测量,或者是识别,一般在算法执行的过程当中,都要把相关得物体锁定出来,这个时候,绘制一个长方体就是一个不错的方法。这有点类似于opencv。因为在opencv当中,不管是检测,还是说识别,也是用一个框把具体的物体标记出来。示例代码参考了这篇blog,做了适当的修改,https://blog.csdn.net/varyshare/article/details/103355931

1、准备pcl.cpp文件

#include <pcl/common/common_headers.h>
#include <pcl/features/normal_3d.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <thread>

using namespace std::chrono_literals;

int main(int argc,char** argv) 

    pcl::visualization::PCLVisualizer::Ptr viewer (new pcl::visualization::PCLVisualizer ("visual"));
    viewer->setBackgroundColor (0, 0, 0);

    Eigen::Vector3f center(0,0,0);
    Eigen::Quaternionf rotation(1,0,0,0);
    viewer->addCube(center,rotation,50,50,100,"demo");

	viewer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_REPRESENTATION, pcl::visualization::PCL_VISUALIZER_REPRESENTATION_WIREFRAME, "demo");
	viewer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 1.0, 0.0, 0.0, "demo");

    while (!viewer->wasStopped())
    
        viewer->spinOnce (100);
		std::this_thread::sleep_for(100ms);
    
    return 0;


2、准备必要的CMakeLists.txt

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

project(pcl)

find_package(PCL 1.2 REQUIRED)

include_directories($PCL_INCLUDE_DIRS)
link_directories($PCL_LIBRARY_DIRS)
add_definitions($PCL_DEFINITIONS)

add_executable (pcl pcl.cpp)
target_link_libraries (pcl $PCL_LIBRARIES)

3、创建sln工程,生成exe文件

4、开始执行exe文件

        直接运行pcl.exe即可,需要得dll全部补上。

        实验效果如下,

 

        可以旋转看一下,

           我们在很多点云demo当中,都是用这种方法标记物体的。

      

以上是关于3d激光雷达开发(绘制长方体)的主要内容,如果未能解决你的问题,请参考以下文章

视觉高级篇20 # 如何用WebGL绘制3D物体?

3d激光雷达开发(sift关键点)

Emgu-WPF 激光雷达研究-移动物体跟踪

Unity 3D 物体旋转放大。

点云处理技术之open3d第四篇:使用open3d绘制常用类型——箭头圆柱长方体球形箭头坐标轴和线条

Unity3D之Mesh绘制长方体