opencv中cvFindExtrinsicCameraParams2函式的演算法原理?

時間 2021-06-01 10:56:35

1樓:魚丸還是粗麵

首先,不知道你是用這個函式來做什麼呢?只是呼叫它獲得camera的外引數嗎?還是說你發現了opencv中solvepnp在使用迭代法求解的時候中呼叫這個函式呢?

這個函式的原型在opencv中是這樣的:

引用自維基百科OpenCV China :影象處理,計算機視覺庫,Image Processing, Computer Vision

void cvFindExtrinsicCameraParams2( const CvMat* object_pointsconst CvMat* image_pointsconst CvMat* intrinsic_matrixconst CvMat* distortion_coeffsCvMat* rotation_vectorCvMat* translation_vector );

object_points

定標點的座標,為3xN或者Nx3的矩陣,這裡N是檢視中的個數。

image_points

定標點在影象內的座標,為2xN或者Nx2的矩陣,這裡N是檢視中的個數。

intrinsic_matrix

內參矩陣(A)

distortion_coeffs

大小為4x1或者1x4的向量,裡面為形變引數[k1,k2,p1,p2]。如果是NULL,所有的形變係數都為0。

rotation_vector

輸出大小為3x1或者1x3的矩陣,裡面為旋轉向量(旋轉矩陣的緊湊表示方式,具體參考函式cvRodrigues2)。

translation_vector

大小為3x1或1x3的矩陣,裡面為平移向量。

。3維物體上的點座標和相應的2維投影必須被指定。這個函式也可以用來最小化反投影誤差。

如果你想在進一步的了解這個函式內部是如何工作的

那麼就應該看下opencv原始碼檔案calibration.cpp(在opencv的原始檔中直接搜尋即可)

它的具體過程大致如下:

- 將空間點和影象點齊次化,得到影象點矩陣m空間點矩陣M,求取矩陣M的平均值Mc,

- 計算另外乙個矩陣mm=(MMc)T(MMc)

- 對空間點矩陣mm進行SVD分解,mm=UWV

ref:PnP - 何必濃墨重彩 - 部落格頻道 - CSDN.NET

OpenCV中 InputArray類究竟是幹什麼的?為什麼需要它?

Tony Lu 個人的理解,不從官網tutorial說了。有的函式需要介面是單幀影象,就乙個cv mat就可以了,有的函式需要或者返回多幀影象,如影象金字塔。那函式擴充套件,就把這些都封裝成InputArray,方便後續拓展和內部實現吧。 OpenCV大多數功能是直接通過函式來提供的,InputAr...

如何入門C 和OpenCV

野人2046 來不及了,轉方向吧。C 從小白到能用至少要半年,如果之前沒做過C 專案,勸你放棄。我之前就踩過相同的坑,最後兩個月換方向驚險過線。 如果目標是實現目標檢測,並且是科研目的不是工程目的。我建議直接學習Python。Python的學習成本非常低,很短的時間就可以上手。OpenCV也提供了很...

機器視覺學halcon好還是opencv好一點?

還能什 從實際應用角度來說,用Halcon會好些,畢竟我們的首要目標是活下來,實際機器視覺應用用Halcon的很多。OpenCv的話,需要公司給你時間去慢慢出成果,非常耗時,老闆不一定有耐心,但是從成本上考慮肯定是開源的high啊。 如果在學校裡,幾乎所有人都會推薦OpenCV 但如果你去工作,會發...