色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python相機標定內參

張明哲1年前7瀏覽0評論

相機標定內參是計算機視覺中非常重要的一個步驟,它能夠幫助我們確定相機的重心、焦距、畸變等參數,從而提高圖像處理的精度和準確度。而Python是非常強大的編程語言之一,我們可以用它來實現我們的相機標定內參。

下面是Python中使用OpenCV庫實現相機標定內參的代碼:

import cv2
import numpy as np
# 讀取標定所需圖像的路徑
images_path = ...
# 設置棋盤格尺寸
square_size = 24.23 # 單位:mm
pattern_size = (9, 6)
# 準備棋盤格點的坐標
pattern_points = np.zeros((pattern_size[0]*pattern_size[1], 3), np.float32)
pattern_points[:,:2] = np.mgrid[0:pattern_size[0],0:pattern_size[1]].T.reshape(-1,2) * square_size
# 保存棋盤格圖像的角點坐標
image_points = []
# 保存所有圖像的大小
image_size = None
for image_path in images_path:
# 讀取圖像
image = cv2.imread(image_path)    
# 轉換為灰度圖像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 尋找棋盤格角點
ret, corners = cv2.findChessboardCorners(gray_image, pattern_size, None)
if ret:
# 保存圖像的大小
if not image_size:
image_size = gray_image.shape[::-1]
else:
assert image_size == gray_image.shape[::-1], "所有圖像的大小必須相同"
# 對角點進行亞像素精確化
corners = cv2.cornerSubPix(gray_image, corners, (11, 11), (-1, -1), 
(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001))
image_points.append(corners)
# 標定相機內參
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(
[pattern_points]*len(image_points), image_points, image_size, None, None)
print("相機內參:\n", mtx)
print("畸變系數:\n", dist)

以上代碼首先讀取標定所需的圖像,然后設置棋盤格尺寸并準備棋盤格點的坐標。隨后程序遍歷所有圖像,利用OpenCV函數findChessboardCorners尋找棋盤格角點,并對角點進行亞像素精確化。最后使用函數calibrateCamera來標定相機內參和畸變系數,得到最終的相機內參。