![](/img/trans.png)
[英]from std::vector of 3 into a pcl::PointCloud<PointXYZ>::Ptr?
[英]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.