簡體   English   中英

將Boost數組轉換為Open CV Mat

[英]Convert boost array to open cv mat

我嘗試將boost :: array rightCamInfo.K轉換為opencv Mat cv :: Mat K。 我沒有為此設置找到任何函數,所以我寫了一個迭代方法:

float tempK[9];
cv::Mat K;
for (int i = 0; i < 9; i++) {
   tempK[i] = rightCamInfo.K[i];
}
K = cv::Mat(3, 3, CV_64F, &tempK);

但這給了我奇怪的結果。 給定數據的范圍在400到0之間,結果矩陣約為5 * 10 ^(-315)。 因此,顯然存在一些轉換錯誤。 怎么了? 我為矩陣選擇了錯誤的類型還是此數組類型不合適?

您應該使用CV_32FCV_64F和點的第一要素tempK

K = cv::Mat(3, 3, CV_32F, &tempK[0]);

要么

Mat K(3, 3, CV_32F, &tempK[0]);

暫無
暫無

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

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