Opencv SolvePnP呼叫實戰

2021-08-25 14:26:15 字數 1202 閱讀 9401

1.環境說明與應用說明

vs2015+opencv3.4,實際應用在mfc環境中!主要是用來做定位,利用平面靶標給機械人的工具快換提供定位資訊

2.實際呼叫

cv_exports_w bool solvepnp(inputarray objectpoints, inputarray imagepoints,

inputarray cameramatrix, inputarray distcoeffs,

outputarray rvec, outputarray tvec,

bool useextrinsicguess = false, int flags = solvepnp_iterative);

引數說明

引數變數名

型別說明

objectpointsstd::vector

特徵點物理座標

imagepointsstd::vector

特徵點影象座標

cameramatrixcv::mat(3, 3, cv_32fc1)

相機內參:3*3的float矩陣

distcoeffscv::mat(1, 5, cv_32fc1)

相機畸變引數

rvec

輸出的旋轉向量

tvec

輸出的平移向量

useextrinsicguess0

flags

計算方法

其中重點flags引數選擇選擇如下所示:

enum ;

本文的應用主要是基於同一平面上的標準特徵點,所以採用solvepnp_iterative方法。

結果直接上圖:

切記,雖然opencv的引數偏愛float型別,但是solvepnp中除了相機內參和畸變引數矩陣是用float型別

外,其餘的矩陣都是double型別,不然出出現計算結果不正確的情況。

spark調優 shuffle調優

基於spark1.6 引數可以通過 new sparkcontext set 來設定,也可以通過命令的引數設定 conf spark.shuffle.file.buffer 預設值 32k 引數說明 該引數用於設定shuffle write task的bufferedoutputstream的buf...

Spark Spark調優 資源調優

spark在乙個executor的記憶體分為三塊,1.一塊是execution記憶體 2.一塊是storge 記憶體 3.一塊是其他記憶體 執行記憶體是執行記憶體,加入,聚合都是在這部分記憶體中執行.shuffle的資料也會先快取在這個記憶體中,滿了再寫入磁碟,能減少io,其實地圖過程也是在這個記憶...

尾調遞迴 ,尾調優化

尾調優化 title head body p pre 尾調優化,值得是函式最後一步呼叫了另乙個函式,函式呼叫會在內部形成乙個 呼叫記錄 儲存呼叫位置,內部變數等,a函式呼叫b函式,形成乙個 a到b的呼叫幀,直到結果返回,幀消失,b呼叫c函式,這樣,就形成了 呼叫棧,pre p h4 pre 尾調,不...