簡體   English   中英

pcl :: PointCloud的快速轉換 <PointXYZ> 到std :: vector <cv::Point3f> 不使用迭代

[英]Quick conversion of pcl::PointCloud<PointXYZ> to std::vector<cv::Point3f> using no iteration

我正在尋找一種將pcl::PointCloud<PointXYZ>類型的PCL點雲轉換為std::vector<cv::Point3f>

問題在於pcl::PointXYZ包含4個浮點數(x,y,z,padding),而cv::Point3f僅包含3個浮點數(x,y,z)。 如果它們都是3個浮點數,我可以對數據緩沖區進行簡單的指針轉換。

因此,基本的問題基本上是:如何在不使用迭代的情況下(即for循環)將具有4個浮點數的結構數組轉換為具有3個浮點數的結構數組?

如果您有一些點雲pcl::PointCloud<pcl::PointXYZ> cloud並且您想創建一個包含OpenCV類型cv::Point3f的點向量, cv::Point3f可以使用基於范圍的for循環,如下所示:

std::vector<cv::Point3f> points;

for (const auto& point : cloud) {
    points.push_back(cv::Point3f(point.x, point.y, point.z));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM