【发布时间】:2015-02-12 14:13:04
【问题描述】:
我已经使用opencv提供的校准代码校准了我的相机,一切正常!我还可以通过使用 Python 编写的代码应用参数来消除我想要的任何图像。
import numpy as np
import cv2
# copy parameters to arrays
K = np.array([[385.58130632872212, 0, 371.50000000000000], [0, 385.58130632872212, 236.50000000000000], [0, 0, 1]])
d = np.array([-0.27057628187805571, 0.10522881965331317, 0, 0, 0]) # just use first two terms (no translation)
# read one of your images
img = cv2.imread("C:\Users\ROS\Documents\Python\VCSBC2.jpg")
h, w = img.shape[:2]
# undistort
newcamera, roi = cv2.getOptimalNewCameraMatrix(K, d, (w,h), 0)
newimg = cv2.undistort(img, K, d, None, newcamera)
cv2.imwrite("original.jpg", img)
cv2.imwrite("undistorted.jpg", newimg)
但问题是我真的不知道如何在实时传输期间不失真图像。我正在使用 TCP/IP 协议从我的相机中获取图像,我可以从它内部运行东西,但我不知道我应该如何插入矩阵和参数以便不失真实时图像。有没有人可以告诉我这个?
谢谢。
【问题讨论】:
标签: python c++ opencv camera-calibration real-time-updates