點雲平台之CloudCompare開發二


      記得2018年9月底寫了一篇關於cloudcompare開發的博文,當前也屬於我所有博文里訪問量最高的一篇博文,也不知道碼迷是個什么網站,簡單粗暴的轉載了我的這篇博客,本着資源共享的精神,姑且也不必在意這些了,就當做是一種推廣吧!記得之前有些網友對博文里的一些未知的接口進行了詢問,本來我的博客打算停止更新的,因為目前已經脫離學校了,再很難有剩余的時間來研究這些了。不過感覺這些基本的入門知識對每一個新人來說還是挺有用的,自己當年也是過來人,深有體會,今天 是我2018年農歷年的最后一篇博客也是我2019年的第一篇博客。

      感覺我的博客好像要慢慢變成心靈雞湯了,正逢春節小長假又是新年伊始,此情此景,我又情不自禁的抒發個人感悟了:    

       一天又一天,一年又一年,轉眼間到了2018農歷新年,也已經工作半年有余。雖然不具備詩人那種不食人間煙火的氣質與驚世駭俗的才華,但是詩人的那份多愁善感已經具備10多年之久,不知道為了什么而學了理科,也不知道為什么還學了測繪,最后步入了與文藝氣息完全水火不容的碼農行列(其實個人一直覺得社會科學的力量大於自然科學,就像歐洲文藝復興一樣),其實當文藝真成為了一種職業,如果其無法讓你立足於這個社會,估計你也會質疑它,甚至是唾棄,夢想造就美好生活的前提是夢想還沒有在現實面前輸的一干二凈,不斷給自己重新定位顯得彌足珍貴。其實也得感謝自己一路稀里糊塗的選擇以及自己所秉持着的努力踏實的家庭教育,這樣至少當前能把文藝當成愛好,同時也不至於餓死街頭,其實我以前覺得做你愛做的工作,然后就能開開心心的干好它,經歷了半年的工作以后,其實這只是烏托邦,當今社會處於一個變革的時代,人們對物質的依賴程度完全超越了過往任何一個時期,所以很多人都是拿出至少120%的熱情在努力工作,預想在一個舉目無親的城市里生存下來,甚至是體面的活着,你除了拿出至少超越120%的努力,那剩下的你還能有什么可以作為資本呢?彈簧超過了彈性限度,那一切又會歸於無止盡的平淡,無止盡的平淡那就自然而然衍生出了枯燥甚至是苦悶。其實想通之后,這樣就釋然多了:不是你一個人累,萬千有理想的年輕人都過得很累,其實我以前特別喜歡嚴復天演論里的一句話: “世間萬物,優勝者生存,國家民族亦如此,今我中華民族若不奮起,必將被人類歷史所淘汰”。(不知道是不是書里的原話,但至少是這本書的中心思想),雖然用在這里有點不合時宜,但是國家民族如此,作為芸芸眾生中渺小的個人更是如此了,這也是我3年前的座右銘,不過現在不需要了,因為生活的艱辛早已深入骨髓了,所以刻骨銘心的道理是不需要刻意去時刻來警醒自己的,如果每天都滿懷這種憂患意識,那活的豈不是很累,所以我現在才明白了什么是真正的內在了,其實當你為某件事不懈奮斗的時候,你會在不自覺中練就達到這種目標的人格素質,就像明天都是除夕了,今天我突然想起了還有一篇技術博客沒寫(之前承諾過一位網友),當然這幾天也會偶爾琢磨之前一直在研究的lod技術,但是以前的我能無所事事整整一個假期,靠着游戲里的角色獲取所謂的成就感,現在的我也算是一種成長吧。(在此聲明:本技術博客更多的是個人人生感悟以及旨在鼓勵那些像我一樣還在貧困線上苦苦掙扎的草根們,一切物質化的東西都將經不起時間的推敲,一切都需要腳踏實地,知足常樂。)

       廢話 到此為止,愛看的可以看看,不愛看的,直接可以步入下面正題(畢竟是技術博客)

       該段代碼直接來源於我cc平台里的代碼,直接可用。

//----------------------ccCloud轉pointcloud---------------------

 

//cccloud轉換成pcl的pointcloud --- rgb

void CCcloudToPCLcloud(ccPointCloud* m_cloud, PointCloud<pcl::PointXYZRGB>::Ptr pclCloud)

{

     int num = m_cloud->size();

     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);

     }

}

//------------------------結束-----------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM