簡體   English   中英

如何從cv :: Vec3f轉換為float類型?

[英]How to cast from cv::Vec3f to a float type?

背景

我目前正在嘗試在運行Ubuntu MATE 16.04 LTS的 Rapsberry Pi上使用ROS構建自動無人機。 到目前為止,解決了識別紅色圓圈的計算機視覺問題。

我目前想將其轉換為:

cv::vector<cv::Vec3f> circles

變成一組向量的浮點數 但是,我很清楚,簡單的轉換是不夠的。 那么我應該如何處理呢?

一個簡單的循環呢?

std::vector<cv::Vec3f> circles;

// 'circles' filled somehow...

// Get 'circles' as a vector of vector of floats 'v'
std::vector<std::vector<float>> v(circles.size(), std::vector<float>(3));

for(size_t i=0; i<circles.size(); ++i) 
{
    const cv::Vec3f& c = circles[i];             
    v[i][0] = c[0];
    v[i][1] = c[1];
    v[i][2] = c[2];
}

不要使用cv::vector 使用std::vector代替。 有關更多詳細信息,請參見此處

數據結構

在將cv::vector<cv::Vec3f>類型轉換為float類型之前

您必須了解cv::vector<cv::Vec3f>是哪種數據結構

就像2D向量std::vector<cv::Vec3f>

在此處輸入圖片說明

因此,您不能僅將float變量分配給2d向量

您必須使用另一種浮點類型的2d向量來存儲數據內容

暫無
暫無

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

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