使用opencv写一个畸变矫正的代码
时间: 2024-05-13 16:18:22 浏览: 100
lens.rar_opencv 畸变校正_畸变代码_鱼眼 C_鱼眼图像校正_鱼眼畸变校正
以下是使用OpenCV进行畸变矫正的示例代码:
```python
import cv2
import numpy as np
# 读取原始图像
img = cv2.imread("image.jpg")
# 设置相机参数
K = np.array([[1000, 0, 500], [0, 1000, 500], [0, 0, 1]], dtype=np.float32)
d = np.array([0.1, -0.05, 0.01, 0.0], dtype=np.float32)
# 进行畸变矫正
h, w = img.shape[:2]
new_K, roi = cv2.getOptimalNewCameraMatrix(K, d, (w, h), 1, (w, h))
mapx, mapy = cv2.initUndistortRectifyMap(K, d, None, new_K, (w, h), 5)
img_corrected = cv2.remap(img, mapx, mapy, cv2.INTER_LINEAR)
# 显示结果
cv2.imshow("Original Image", img)
cv2.imshow("Corrected Image", img_corrected)
cv2.waitKey(0)
```
在上述代码中,首先读取原始图像并设置相机参数。在这里,`K`是相机矩阵,`d`是畸变系数。然后使用`cv2.getOptimalNewCameraMatrix()`函数计算新相机矩阵和图像感兴趣区域(ROI),并使用`cv2.initUndistortRectifyMap()`函数计算畸变去除的映射表。最后,使用`cv2.remap()`函数对原始图像进行畸变矫正。
运行代码后,将显示原始图像和经过畸变矫正后的图像。
阅读全文