【 声明:版权所有,欢迎转载,请勿用于商业用途。
不管是测量,或者是识别,一般在算法执行的过程当中,都要把相关得物体锁定出来,这个时候,绘制一个长方体就是一个不错的方法。这有点类似于opencv。因为在opencv当中,不管是检测,还是说识别,也是用一个框把具体的物体标记出来。示例代码参考了这篇blog,做了适当的修改,javascript:void(0)
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当中,都是用这种方法标记物体的。