相機的內參會改變嗎 相機內參和畸變引數進行校正程式

2021-10-13 14:15:03 字數 1587 閱讀 6372

#include using namespace std;

using namespace cv;

int test(int argc, char** ar**)

videocapture capture(0);

while(1)

mat frame;

capture >> frame;

size image_size;

image_size = frame.size();

flip(frame, frame, 1);

mat distortion = frame.clone();

mat r = mat::eye(3, 3, cv_32fc1);

mat camera_matrix = mat(3,3,cv_32fc1);

mat distortion_coefficients;

匯入相機內參和畸變係數矩陣

mat mapx = mat(image_size, cv_32fc1);

mat mapy = mat(image_size, cv_32fc1);

filestorage file_storage("out_camera_data.yml", filestorage::read);

file_storage["camera_matrix"] >> camera_matrix;

file_storage["distortion_coefficients"]>>distortion_coefficients;

file_storage.release();

initundistortrectifymap(camera_matrix, distortion_coefficients, r, camera_matrix,

image_size, cv_32fc1, mapx, mapy);

//第乙個引數cameramatrix為之前求得的相機的內參矩陣;

//第二個引數distcoeffs為之前求得的相機畸變矩陣;

//第三個引數r,可選的輸入,是第一和第二相機座標之間的旋轉矩陣;

//第四個引數newcameramatrix,輸入的校正後的3x3攝像機矩陣;

//第五個引數size,攝像機採集的無失真的影象尺寸;

//第六個引數m1type,定義map1的資料型別,可以是cv_32fc1或者cv_16sc2;

//第七個引數map1和第八個引數map2,輸出的x / y座標重對映引數

remap(frame, distortion, mapx, mapy, inter_linear);

//第乙個引數src,輸入引數,代表畸變的原始影象;

//第二個引數dst,矯正後的輸出影象,跟輸入影象具有相同的型別和大小;

//第三個引數map1和第四個引數map2,x座標和y座標的對映;

//第五個引數interpolation,定義影象的插值方式;

//第六個引數bordermode,定義邊界填充方式

imshow("原圖", frame);

imshow("校正圖", distortion);

if (waitkey(30) > 0) break;

return 0;

相機的內參會改變嗎 zscore會改變資料分布嗎

先說結論 z score不會修改原來的資料分布。這篇是z score的標準化究竟怎麼弄?中如下內容的修訂 那麼預設引數下,我們就是對矩陣按列進行z score的標準化。檢驗標準很簡單,計算標準化的資料的均值和標準差,因為z score的結果就是讓資料服從均值為0,標準差為1的正態分佈。裡面說z sc...

相機內參外參

參考資料 說內參矩陣之前,還得再引入畫素座標系的概念。上述影象點的表示是長度單位,不是畫素,由於我們拿到的影象是以畫素來衡量的,因此還需要將影象座標系轉化為畫素座標系。在此直接給出結論 於是之前的相機矩陣又得新增一項 上述推導中有乙個假設前提,就是相機的感光元件是正方形的,感光元件的安裝也是通過光軸...

urdf中相機內參

multicamera name stereo camera 30.0 update rate left 1.3962634 horizontal fov 800 width 800 height r8g8b8 format image 0.02 near 300 far clip gaussian...