记得2018年9月底写了一篇关于cloudcompare开发的博文,当前也属于我全部博文里访问量最高的一篇博文,也不知道码迷是个什么网站,简单粗暴的转载了个人这篇博客,本着资源共享的精神,姑且也没必要在乎这些了,就当作是一种推广吧!记得以前有些网友对博文里的一些未知的接口进行了询问,原本个人博客打算中止更新的,由于目前已经脱离学校了,再很难有剩余的时间来研究这些了。不过感受这些基本的入门知识对每个新人来讲仍是挺有用的,本身当年也是过来人,深有体会,今天 是我2018年农历年的最后一篇博客也是我2019年的第一篇博客。函数
感受个人博客好像要慢慢变成心灵鸡汤了,正逢春节小长假又是新年伊始,此情此景,我又不由自主的抒发我的感悟了: 网站
一天又一天,一年又一年,转眼间到了2018农历新年,也已经工做半年有余。虽然不具有诗人那种不吃烟火食的气质与惊世骇俗的才华,可是诗人的那份多愁善感已经具有10多年之久,不知道为了什么而学了理科,也不知道为何还学了测绘,最后步入了与文艺气息彻底水火不容的码农行列(其实我的一直以为社会科学的力量大于天然科学,就像欧洲文艺复兴同样),其实当文艺真成为了一种职业,若是其没法让你立足于这个社会,估计你也会质疑它,甚至是唾弃,梦想造就美好生活的前提是梦想尚未在现实面前输的一干二净,不断给本身从新定位显得弥足珍贵。其实也得感谢本身一路稀里糊涂的选择以及本身所秉持着的努力踏实的家庭教育,这样至少当前能把文艺当成爱好,同时也不至于饿死街头,其实我之前以为作你爱作的工做,而后就能开开心心的干好它,经历了半年的工做之后,其实这只是乌托邦,当今社会处于一个变革的时代,人们对物质的依赖程度彻底超越了过往任何一个时期,因此不少人都是拿出至少120%的热情在努力工做,预想在一个举目无亲的城市里生存下来,甚至是体面的活着,你除了拿出至少超越120%的努力,那剩下的你还能有什么能够做为资本呢?弹簧超过了弹性限度,那一切又会归于无止尽的平淡,无止尽的平淡那就天然而然衍生出了枯燥甚至是苦闷。其实想通以后,这样就释然多了:不是你一我的累,万千有理想的年轻人都过得很累,其实我之前特别喜欢严复天演论里的一句话: “世间万物,优胜者生存,国家民族亦如此,今我中华民族若不奋起,必将被人类历史所淘汰”。(不知道是否是书里的原话,但至少是这本书的中心思想),虽然用在这里有点不合时宜,可是国家民族如此,做为芸芸众生中眇小的我的更是如此了,这也是我3年前的座右铭,不过如今不须要了,由于生活的艰辛早已深刻骨髓了,因此刻骨铭心的道理是不须要刻意去时刻来警醒本身的,若是天天都满怀这种忧患意识,那活的岂不是很累,因此我如今才明白了什么是真正的内在了,其实当你为某件事不懈奋斗的时候,你会在不自觉中练就达到这种目标的人格素质,就像明天都是除夕了,今天我忽然想起了还有一篇技术博客没写(以前承诺过一位网友),固然这几天也会偶尔琢磨以前一直在研究的lod技术,可是之前的我能无所事事整整一个假期,靠着游戏里的角色获取所谓的成就感,如今的我也算是一种成长吧。(在此声明:本技术博客更多的是我的人生感悟以及旨在鼓励那些像我同样还在贫困线上苦苦挣扎的草根们,一切物质化的东西都将经不起时间的推敲,一切都须要脚踏实地,满足常乐。)接口
废话 到此为止,爱看的能够看看,不爱看的,直接能够步入下面正题(毕竟是技术博客)游戏
该段代码直接来源于我cc平台里的代码,直接可用。资源
//----------------------ccCloud转pointcloud---------------------开发
//cccloud转换成pcl的pointcloud --- rgbget
void CCcloudToPCLcloud(ccPointCloud* m_cloud, PointCloud<pcl::PointXYZRGB>::Ptr pclCloud)博客
{入门
int num = m_cloud->size();ast
for (int i = 0; i < num; i++)
{
PointXYZRGB pointT;
pointT.x = (m_cloud->getPoint(i))->x;
pointT.y = (m_cloud->getPoint(i))->y;
pointT.z = (m_cloud->getPoint(i))->z;
if (m_cloud->getPointColor(i)[0] != NULL)
{
pointT.r = (m_cloud->getPointColor(i))[0];
pointT.g = (m_cloud->getPointColor(i))[1];
pointT.b = (m_cloud->getPointColor(i))[2];
}
pclCloud->push_back(pointT);
}
}
//cccloud转换成pcl的pointcloud no rgb--重载一下这个函数
void CCcloudToPCLcloud(ccPointCloud* m_cloud, PointCloud<pcl::PointXYZ>::Ptr pclCloud)
{
int num = m_cloud->size();
for (int i = 0; i < num; i++)
{
PointXYZ pointT;
pointT.x = (m_cloud->getPoint(i))->x;
pointT.y = (m_cloud->getPoint(i))->y;
pointT.z = (m_cloud->getPoint(i))->z;
pclCloud->push_back(pointT);
}
}
//----------------------pointCloud转ccCloud---------------------
void PCLcloudToCCcloud(PointCloud<pcl::PointXYZRGB>::Ptr pclCloud, ccPointCloud* m_cloud)
{
int num = pclCloud->points.size();
m_cloud->reserve(static_cast<unsigned>(num));
for (int i = 0; i < num; i++)
{
CCVector3 P11(pclCloud->points[i].x, pclCloud->points[i].y, pclCloud->points[i].z);
m_cloud->addPoint(P11);
ccColor::Rgb rgb;//定义一个颜色
if (pclCloud->points[0].r <= 1 && pclCloud->points[0].g <= 1)
{
rgb = ccColor::Rgb(pclCloud->points[i].r*255, pclCloud->points[i].g*255, pclCloud->points[i].b*255);
}
else
{
rgb = ccColor::Rgb(pclCloud->points[i].r, pclCloud->points[i].g, pclCloud->points[i].b);
}
m_cloud->resizeTheRGBTable(true);
m_cloud->setPointColor(i, rgb.rgb);
}
}
//无色的cccloud ---重载一下这个函数
void PCLcloudToCCcloud(PointCloud<pcl::PointXYZ>::Ptr pclCloud, ccPointCloud* m_cloud)
{
int num = pclCloud->points.size();
m_cloud->reserve(static_cast<unsigned>(num));
for (int i = 0; i < num; i++)
{
CCVector3 P11(pclCloud->points[i].x, pclCloud->points[i].y, pclCloud->points[i].z);
m_cloud->addPoint(P11);
}
}
//------------------------结束-----------------------------------