张正友标定法图片
时间: 2025-06-12 19:27:02 浏览: 14
### 张正友相机标定法示例图片及解释
张正友相机标定法是一种基于平面棋盘格的单目相机标定方法,由张正友教授于1998年提出[^3]。该方法通过使用一张打印的棋盘格图案作为标定板,结合世界坐标系与像素坐标系之间的数学关系,计算出相机的内参矩阵、外参矩阵以及畸变系数[^4]。
以下是对张正友相机标定法中常见示例图片的解释:
#### 1. 棋盘格标定板
张正友标定法的核心工具是棋盘格标定板。这种标定板通常是由黑白相间的矩形方块组成,形成规则的网格结构。每个交点(角点)在标定过程中被检测并用于计算相机参数[^1]。
```python
import cv2
import numpy as np
# 示例代码:检测棋盘格角点
chessboard_size = (7, 7) # 棋盘格内部角点数
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((chessboard_size[0] * chessboard_size[1], 3), np.float32)
objp[:, :2] = np.mgrid[0:chessboard_size[0], 0:chessboard_size[1]].T.reshape(-1, 2)
# 加载图像
img = cv2.imread('chessboard_image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 寻找棋盘格角点
ret, corners = cv2.findChessboardCorners(gray, chessboard_size, None)
if ret:
corners_refined = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria)
cv2.drawChessboardCorners(img, chessboard_size, corners_refined, ret)
cv2.imshow('Chessboard Corners', img)
cv2.waitKey(0)
```
#### 2. 角点检测
在标定过程中,需要从多张不同角度拍摄的棋盘格图像中提取角点位置。这些角点的二维像素坐标将与已知的世界坐标进行匹配,从而建立相机内外参的数学模型[^3]。
#### 3. 内参矩阵
通过标定计算得到的内参矩阵 \( K \) 包含了焦距 \( f_x, f_y \) 和主点偏移 \( u_0, v_0 \)。具体形式如下:
\[
K = \begin{bmatrix}
f_x & 0 & u_0 \\
0 & f_y & v_0 \\
0 & 0 & 1
\end{bmatrix}
\]
#### 4. 外参矩阵
外参矩阵由旋转矩阵 \( R \) 和平移向量 \( t \) 组成,表示世界坐标系到相机坐标系的变换关系。
#### 5. 畸变校正
张正友标定法还考虑了镜头畸变的影响,通常包括径向畸变和切向畸变。畸变系数 \( k_1, k_2, p_1, p_2, k_3 \) 被用来校正图像中的几何失真[^4]。
### 示例图片解释
- **棋盘格标定板**:一张黑白相间的棋盘格图案,用于提供精确的几何参考。
- **角点检测结果**:在图像中标记出棋盘格的所有角点,用于后续计算。
- **标定结果可视化**:显示标定后的相机内外参以及畸变校正效果。
---
阅读全文
相关推荐


















