当前位置:网站首页>PCL projection point cloud
PCL projection point cloud
2022-07-02 10:57:00 【AICVer】
Projection to XOY In the plane
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/project_inliers.h>
#include <pcl/visualization/pcl_visualizer.h>
using namespace std;
using namespace pcl;
void visualize(PointCloud<PointXYZ>::Ptr source, PointCloud<PointXYZ>::Ptr target)
{
visualization::PCLVisualizer viewer("Point Cloud Viewer");
// Create two display windows
int v1, v2;
viewer.createViewPort(0, 0.0, 0.5, 1.0, v1);
viewer.createViewPort(0.5, 0.0, 1.0, 1.0, v2);
// Set the background color
viewer.setBackgroundColor(255, 255, 255, v1);
viewer.setBackgroundColor(255, 255, 255, v2);
// Add color to point clouds
visualization::PointCloudColorHandlerCustom<PointXYZ> source_color(source, 0, 0, 255); // blue
visualization::PointCloudColorHandlerCustom<PointXYZ> target_color(target, 255, 0, 0); // red
// Add a point cloud to the display window
viewer.addPointCloud(source, source_color, "source cloud", v1);
viewer.addPointCloud(target, target_color, "target cloud", v2);
while (!viewer.wasStopped())
{
viewer.spinOnce(100);
boost::this_thread::sleep(boost::posix_time::microseconds(100000));
}
}
int main(int argc, char** argv)
{
PointCloud<PointXYZ>::Ptr cloud(new pcl::PointCloud<PointXYZ>);
PointCloud<PointXYZ>::Ptr filtered_cloud(new pcl::PointCloud<PointXYZ>);
io::loadPCDFile("D:\\Data\\rabbit.pcd", *cloud);
// Output the number of points before filtering
cout << " Before filtering :" << cloud->points.size() << " A little bit " << endl;
// Set the coefficient of model parameters
ModelCoefficients::Ptr coefficients(new ModelCoefficients());
coefficients->values.resize(4);
coefficients->values[0] = 0;
coefficients->values[1] = 0;
coefficients->values[2] = 1.0;
coefficients->values[3] = 0;
// Instantiate the filter object
ProjectInliers<PointXYZ> proj;
proj.setModelType(SACMODEL_PLANE);
proj.setInputCloud(cloud);
proj.setModelCoefficients(coefficients);
proj.filter(*filtered_cloud);
cout << " Yes after filtering :" << filtered_cloud->points.size() << " A little bit " << endl;
visualize(cloud, filtered_cloud);
return 0;
}
Other models that can be projected
The projection models that can be used are as follows :
Plane model :SACMODEL_PLANE
Line model :SACMODEL_LINE
A two-dimensional circle on a plane :SACMODEL_CIRCLE2D
A three-dimensional circle on a plane :SACMODEL_CIRCLE3D
Sphere model :SACMODEL_SPHERE
Cylinder model :SACMODEL_CYLINDER
Conical model :SACMODEL_CONE
Torus model :SACMODEL_TORUS
A line model parallel to a given axis :SACMODEL_PARALLEL_LINE
Plane model perpendicular to the specified axis :SACMODEL_PERPENDICULAR_PLANE
3D bar segmentation model :SACMODEL_STICK
边栏推荐
猜你喜欢

【快应用】text组件里的文字很多,旁边的div样式会被拉伸如何解决

1287_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析

The URL in the RTSP setup header of the axis device cannot take a parameter

12. Process synchronization and semaphore

Mysql database remote access permission settings

Flutter——Canvas自定义曲线图

UVM learning - object attribute of UVM phase
![[SUCTF2018]followme](/img/63/9104f9c8bd24937b0fc65053efec96.png)
[SUCTF2018]followme

2022爱分析· 国央企数字化厂商全景报告

Shapiro Wilk normal analysis by SPSS
随机推荐
Hdu1236 ranking (structure Sorting)
Windows环境MySQL8忘记密码文件解决方案
《实习报告》Skywalking分布式链路追踪?
Kustomize user manual
UVM - usage of common TLM port
集成学习概览
KS009基于SSH实现宠物管理系统
正则及常用公式
STM32 and motor development (upper system)
"Matching" is true love, a new attitude for young people to make friends
使用sqlcipher打开加密的sqlite方法
4.随机变量
SPSS做Shapiro-Wilk正态分析
JS settimeout() and interview questions
AttributeError: type object ‘Image‘ has no attribute ‘fromarray‘
js数组常用方法
Importing tables from sqoop
Hdu1228 a + B (map mapping)
MySQL lethal serial question 4 -- are you familiar with MySQL logs?
2022-06-17