cv2攝像頭標定

2021-08-21 17:42:35 字數 829 閱讀 3634

本篇部落格主要介紹cv2模組中的攝像頭標定。

攝像頭會發生徑向畸變和切向畸變。

攝像頭的內部引數和外部引數。內部引數是攝像頭特異的,它包括的資訊有x方向和y方向的焦距(fx, fy),光圈中心(cx, cy),相機的內部引數也稱為攝像頭矩陣。

在進行攝像頭標定時至少需要使用10張圖案模式,3d點稱為物件點,2d點稱為影象點,可以使用棋盤或者環形格仔來進行攝像頭標定,使用函式cv2.findcirclegrid()來找圖案。

**示例:

# encoding:utf-8

import numpy as np

import cv2

import glob

# 設定終止條件,迭代30次或移動0.001

criteria = (cv2.term_criteria_eps + cv2.term_criteria_max_iter, 30, 0.001)

# 準備物件點,類似(0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)

objp = np.zeros((6 * 7, 3), np.float32)

objp[:, : 2] = np.mgrid[0: 7, 0: 6].t.reshape(-1, 2) # np.mgrid()返回多維結構

# 從所有影象中儲存物件點和影象點的陣列

objpoints = # 真實世界的3d點

imgpoints = # 影象的2d點

# glob.globglob.glob函式的引數是字串。這個字串的書寫和我們使用

# linux的shell命令相似,或者說

攝像頭標定

void calrealpoint std vector obj,int boardwidth,int boardheight,int imgnumber,int squaresize for int imgindex 0 imgindex imgnumber imgindex void camer...

攝像頭標定

void calrealpoint std vector obj,int boardwidth,int boardheight,int imgnumber,int squaresize for int imgindex 0 imgindex imgnumber imgindex void camer...

雙目攝像頭標定

本文選擇使用matlab進行標定。標定過程分3步,接下來分步詳細展開 使用棋盤格生產影象 使用影象在matlab中標定 使用標定係數 第一步 使用棋盤格生產影象 列印棋盤格紙 這一步建議選擇矩形棋盤格,否則容易因為原點不同出現標定偏差,本文版本放在文末了 在目錄下建立兩個資料夾 frameright...