<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一些點云的小知識,從官方文檔中發現的例子

      1、判斷點云的點是否是有效的

      	pcl::PointXYZ p_valid;
      	p_valid.x = 0;
      	p_valid.y = 0;
      	p_valid.z = 0;
      	std::cout << "Is p_valid valid? " << pcl::isFinite(p_valid) << std::endl;
      
      	// If any component is NaN, the point is not finite.
      	pcl::PointXYZ p_invalid;
      	p_invalid.x = std::numeric_limits<float>::quiet_NaN();
      	p_invalid.y = 0;
      	p_invalid.z = 0;
      	std::cout << "Is p_invalid valid? " << pcl::isFinite(p_invalid) << std::endl;
      

        打印結果:

       2、復制同類的點云

      	// 拷貝點云
      	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>());
      
      	pcl::PointCloud<pcl::PointXYZ>::PointType p;// 相當于 pcl::PointXYZ p;
      	p.x = 1;
      	p.y = 2;
      	p.z = 3;
      	cloud->push_back(p);
      	std::cout << p.x << " " << p.y << " " << p.z << std::endl;
      
      	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZ>());
      	copyPointCloud(*cloud, *cloud2);// 相同類型復制
      
      	pcl::PointCloud<pcl::PointXYZ>::PointType p_retrieved = (*cloud2)[0];
      	//pcl::PointXYZ p_retrieved = cloud2->points.at(0);// 同上
      	std::cout << p_retrieved.x << " " << p_retrieved.y << " " << p_retrieved.z << std::endl;
      

        結果:

       3、 類型不同的點云復制

      // 拷貝點云
      	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>());
      	pcl::PointCloud<pcl::PointXYZ>::PointType p;// 相當于 pcl::PointXYZ p;
      	p.x = 1;
      	p.y = 2;
      	p.z = 3;
      	cloud->push_back(p);
      	std::cout << p.x << " " << p.y << " " << p.z << std::endl;
      
      	pcl::PointCloud<pcl::PointNormal>::Ptr cloud2(new pcl::PointCloud<pcl::PointNormal>());
      	copyPointCloud(*cloud, *cloud2);// 不同類型復制,注意cloud2是包含點和法線的,若類型是pcl::Normal會報錯
      
      	//pcl::PointCloud<pcl::PointNormal>::PointType p_retrieved = (*cloud2)[0];
      	pcl::PointNormal p_retrieved = cloud2->points.at(0);// 同上
      	std::cout << p_retrieved.x << " " << p_retrieved.y << " " << p_retrieved.z << std::endl;
      	std::cout << cloud2->points.at(0).x << " " << cloud2->points.at(0).y << " " << cloud2->points.at(0).z << std::endl;
      	std::cout << cloud2->points.at(0).normal[0] << std::endl;
      	std::cout << cloud2->points.at(0).normal_y << std::endl;
      	std::cout << cloud2->points.at(0).normal[2] << std::endl;
      

        結果:

       4、獲取導入點云文件的最大值和最小值點

          pcl::PointXYZ minPt, maxPt;
      	pcl::getMinMax3D(*n.cloud, minPt, maxPt);
      	std::cout << "Max x: " << maxPt.x << std::endl;
      	std::cout << "Max y: " << maxPt.y << std::endl;
      	std::cout << "Max z: " << maxPt.z << std::endl;
      	std::cout << "Min x: " << minPt.x << std::endl;
      	std::cout << "Min y: " << minPt.y << std::endl;
      	std::cout << "Min z: " << minPt.z << std::endl;    
      

        結果:

       另一種寫法:

      // 遍歷點云區間
      	for (const auto& p : n.cloud->points)
      	{
      		if (minX > p.x) minX = p.x;
      		if (minX > p.y) minY = p.y;
      		if (minX > p.z) minZ = p.z;
      
      		if (maxX < p.x) maxX = p.x;
      		if (maxY < p.y) maxY = p.y;
      		if (maxZ < p.z) maxZ = p.z;
      	}
      	qDebug() << minX << minY << minZ << maxX << maxY << maxZ;
      

        結果:

      導入的是同一個文件,但為什么結果不一樣呢,因為這個沒有做無效點判斷,而上面那個底層是有判斷的

       

      5、組織有序的點云

      	// Setup the cloud
      	using PointType = pcl::PointXYZ;
      	using CloudType = pcl::PointCloud<PointType>;
      	CloudType::Ptr cloud(new CloudType);
      
      	// Make the cloud a 10x10 grid
      	cloud->height = 10;
      	cloud->width = 10;
      	cloud->is_dense = true;
      	cloud->resize(cloud->height * cloud->width);
      
      	// Output the (0,0) point
      	std::cout << (*cloud)(0, 0) << std::endl;
      
      	// Set the (0,0) point
      	PointType p; p.x = 1; p.y = 2; p.z = 3;
      	(*cloud)(0, 0) = p;
      
      	// Confirm that the point was set
      	std::cout << (*cloud)(0, 0) << std::endl;
      

        結果:

       

      posted @ 2024-09-27 09:38  堯舜語  閱讀(134)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 伊人久久大香线蕉av五月天| 野花社区视频www官网| 一区二区中文字幕久久| 欧美私人情侣网站| 亚洲精品中文av在线| 亚洲综合在线日韩av| 亚洲精品熟女一区二区| 国产h视频在线观看| AV人摸人人人澡人人超碰| 亚洲精品一区二区三区大桥未久| 不卡一区二区三区四区视频| 亚洲成a人无码av波多野| 亚洲日韩一区二区| 国产精品国产三级国产专| 色婷婷综合久久久久中文字幕| 少妇午夜啪爽嗷嗷叫视频| 天天综合色一区二区三区| 国产精品久久久久7777| 少妇高潮太爽了在线视频| 久久九九久精品国产免费直播 | 不卡一区二区三区视频播放| 成人午夜免费无码视频在线观看| 国产首页一区二区不卡| 巨熟乳波霸若妻在线播放| 亚洲 日本 欧洲 欧美 视频| 欧美浓毛大泬视频| 大又大又粗又硬又爽少妇毛片| 亚洲午夜亚洲精品国产成人| 最新的国产成人精品2022| 在线涩涩免费观看国产精品 | 福利一区二区不卡国产| 国产av一区二区三区久久| 久久人人妻人人爽人人爽| 临猗县| 亚洲最大天堂在线看视频| 人妻少妇邻居少妇好多水在线 | 成人亚洲a片v一区二区三区动漫 | 激情四射激情五月综合网| 久久亚洲精品11p| 亚洲国产成人精品无码一区二区| 白白发布视频一区二区视频|