concatenate clouds

2024-05-04 01:08
文章标签 concatenate clouds

本文主要是介绍concatenate clouds,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在这儿方面以后查找阅览----------------------------

代码来自PCL点云库那本书---------------------------

#include "stdafx.h"

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
//连接两个点云的字段或者数据形成新的点云
int
main(int argc,char** argv)
{
if(argc!=2)
{
std::cerr<<"please specify command line arg '-f' or '-p'"<<std::endl;
exit(0);
}
pcl::PointCloud<pcl::PointXYZ> cloud_a,cloud_b,cloud_c;
pcl::PointCloud<pcl::Normal> n_cloud_b;
pcl::PointCloud<pcl::PointNormal> p_n_cloud_c;
// 创建点云
cloud_a.width=5;
cloud_a.height=cloud_b.height=n_cloud_b.height=1;
cloud_a.points.resize(cloud_a.width*cloud_a.height);
if(strcmp(argv[1],"-p")==0)
{
cloud_b.width=3;
cloud_b.points.resize(cloud_b.width*cloud_b.height);
}
else{
n_cloud_b.width=5;
n_cloud_b.points.resize(n_cloud_b.width*n_cloud_b.height);
}
for(size_t i=0;i<cloud_a.points.size();++i)
{
cloud_a.points[i].x=1024*rand()/(RAND_MAX+1.0f);
cloud_a.points[i].y=1024*rand()/(RAND_MAX+1.0f);
cloud_a.points[i].z=1024*rand()/(RAND_MAX+1.0f);
}
if(strcmp(argv[1],"-p")==0)
for(size_t i=0;i<cloud_b.points.size();++i)
{
cloud_b.points[i].x=1024*rand()/(RAND_MAX+1.0f);
cloud_b.points[i].y=1024*rand()/(RAND_MAX+1.0f);
cloud_b.points[i].z=1024*rand()/(RAND_MAX+1.0f);
}
else
for(size_t i=0;i<n_cloud_b.points.size();++i)
{
n_cloud_b.points[i].normal[0]=1024*rand()/(RAND_MAX+1.0f);
n_cloud_b.points[i].normal[1]=1024*rand()/(RAND_MAX+1.0f);
n_cloud_b.points[i].normal[2]=1024*rand()/(RAND_MAX+1.0f);
}
std::cerr<<"Cloud A: "<<std::endl;
for(size_t i=0;i<cloud_a.points.size();++i)
std::cerr<<"    "<<cloud_a.points[i].x<<" "<<cloud_a.points[i].y<<" "<<cloud_a.points[i].z<<std::endl;


std::cerr<<"Cloud B: "<<std::endl;
if(strcmp(argv[1],"-p")==0)
for(size_t i=0;i<cloud_b.points.size();++i)
std::cerr<<"    "<<cloud_b.points[i].x<<" "<<cloud_b.points[i].y<<" "<<cloud_b.points[i].z<<std::endl;
else
for(size_t i=0;i<n_cloud_b.points.size();++i)
std::cerr<<"    "<<n_cloud_b.points[i].normal[0]<<" "<<n_cloud_b.points[i].normal[1]<<" "<<n_cloud_b.points[i].normal[2]<<std::endl;


//拷贝点云数据
if(strcmp(argv[1],"-p")==0)
{
cloud_c=cloud_a;
cloud_c+=cloud_b;


//creates cloud_c by concatenating the points of cloud_a and cloud_b together.


std::cerr<<"Cloud C: "<<std::endl;

for(size_t i=0;i<cloud_c.points.size();++i)
std::cerr<<"    "<<cloud_c.points[i].x<<" "<<cloud_c.points[i].y<<" "<<cloud_c.points[i].z<<" "<<std::endl;
}
else
{

pcl::concatenateFields(cloud_a,n_cloud_b,p_n_cloud_c);


//creates p_n_cloud_c by concatenating the fields of cloud_a and cloud_b together.


std::cerr<<"Cloud C: "<<std::endl;

for(size_t i=0;i<p_n_cloud_c.points.size();++i)
std::cerr<<"    "<<
p_n_cloud_c.points[i].x<<" "<<p_n_cloud_c.points[i].y<<" "<<p_n_cloud_c.points[i].z<<" "<<
p_n_cloud_c.points[i].normal[0]<<" "<<p_n_cloud_c.points[i].normal[1]<<" "<<p_n_cloud_c.points[i].normal[2]<<std::endl;
}


//is used to show the content of cloud_c or p_n_cloud_c to the screen depending on if we concatenated the points or fields of the PointClouds.



system("pause");

return(0);

}


注释了一些重要的代码,主要有一个问题是弹出来的exe窗口闪退,看不到cloud_a,...b,.....c的点云数据,不知道是什么原因,另外不知道这句话是什么意思:

if(argc!=2)
{
std::cerr<<"please specify command line arg '-f' or '-p'"<<std::endl;
exit(0);
}难道是要用户输入-f或者-p吗,如果是,exe窗口为什么会闪退,这句话的作用是什么呢?有待解答。

这篇关于concatenate clouds的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958043

相关文章

【Python报错】已解决TypeError: can only concatenate str (not “int“) to str

解决Python报错:TypeError: can only concatenate str (not “int”) to str 在Python中,字符串连接是常见的操作,但如果你尝试将整数(int)与字符串(str)直接连接,会遇到TypeError: can only concatenate str (not "int") to str的错误。这是因为Python不允许不同类型的数

【Python】解决Python报错:TypeError: can only concatenate str (not “int“) to str

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式+人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导、简历面试辅导、技术架构设计优化、开发外包等服务,有需要可加文末联系方式联系。 💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜t

(已开源-ICRA2023) High Resolution Point Clouds from mmWave Radar

本文提出了一种用于生成高分辨率毫米波雷达点云的方法:RadarHD,端到端的神经网络,用于从低分辨率雷达构建类似激光雷达的点云。本文通过在大量原始雷达数据上训练 RadarHD 模型,同时这些雷达数据有对应配对的激光雷达点云数据。本文的实验表明,即使是在未遇见过的场景以及存在严重烟雾遮挡的情况下,RadarHD也能生成丰富的点云数据。同时,这些生成的点云也能应用于现有的激光雷达里程计和建图方法中

TypeError: can only concatenate str (not “int“) to str

TypeError: can only concatenate str (not "int") to str a= '窗前明月光,疑是地上霜。举头望明月,低头思故乡。'print('str_len = len(str_text) :'+ len(a)) 试图打印出字符串 a 的长度,但是在 Python 中拼接字符串和整数需要使用字符串格式化。直接使用加号 + 来连接字符串和整

numpy之用concatenate()拼接数据

我们有时会需要将数据进行拼接,在pandas中可以利用concat()等,而在numpy中可以利用numpy.concatenate() 语法:concatenate((a1, a2, …), axis=0) 说明:(a1, a2, …)为待拼接的数据,可以是一维,也可以是多维。axis决定着怎么将数据拼接:axis=0是将数据按列拼接(即竖着拼接);axis=1是将数据按行拼接(即横着拼接)

Excel使用 CONCATENATE 函数或“”符号拼接多列数据

如果你想在Excel中拼接多列数据,你可以使用Excel的函数来实现。其中一个常用的函数是`CONCATENATE`函数或者更简洁的`&`符号。以下是如何使用这些方法拼接多列数据的示例: 假设有以下的数据: ABCJohnDoe25JaneSmith30BobBrown35 1. **使用 CONCATENATE 函数:**    在单元格 D2 中输入以下公式并按 Enter 键:

numpy.concatenate理解

一、numpy的轴 首先要知道什么是轴,简单来说,数组有几维就有几个轴 例如 x=[1,2,3]有一个轴 x=[[1,2,3],[3,5,6]]有两个轴,当轴=0时,元素为[1,2,3]和[3,5,6],当轴=1时,元素为1,2,3,3,5,6,即,轴其实就是[],最外面的[]就是第一个轴的维度,第二个[]就是轴=1,以此类推 二、numpy.concatenate 看例子 >>> a=n

numpy.concatenate()函数结构及用法

numpy.concatenate() 官方文档 numpy.concatenate((a1, a2, ...), axis=0, out=None) 将具有相同结构的array序列结合成一个array axis是拼接方向,0为横轴,1为纵轴。 axis=0,拼接方向为横轴,需要纵轴结构相同,拼接方向可以理解为拼接完成后数量发生变化的方向。 Reference python】

【综述翻译:第二章】Deep Learning for 3D Point Clouds: A Survey

Deep Learning for 3D Point Clouds: A Survey为国防科技大学发布的综述文章,这里只翻译第二章。 下载链接:https://arxiv.org/abs/1912.12033; 仓库链接:https://github.com/QingyongHu/SoTA-Point-Cloud 2 3D形状分类 这些方法通常首先学习每个点的嵌入,然后使用聚合方法从整个点云

【综述翻译】Deep Learning for 3D Point Clouds: A Survey

Deep Learning for 3D Point Clouds: A Survey为国防科技大学发布的综述文章,这里只翻译摘要,第一章与第三章。 下载链接:https://arxiv.org/abs/1912.12033; 仓库链接:https://github.com/QingyongHu/SoTA-Point-Cloud。 翻译第二章,戳这里 摘要 由于点云学习在计算机视觉,自动驾驶和