大家好,
calibrateCamera
),并查看是否获得了相同的系数。
我的问题
projectPoints
需要的功能
distCoeffs
作为输入。这些系数是否与必须用于
图像(输出
校准照相机
)? 这意味着函数必须计算该运算的逆运算。或者,它是否使用这些系数直接扭曲对象点?这意味着在输出时,例如。
.
我用来模拟图像的最小工作代码(在Python中):
# The distortion matrix that I vary
distortion = np.array([0.3, 0.001, 0.0, 0.0, 0.01])
# Generate Grid of Object Points
grid_size, square_size = [20, 20], 0.2
object_points = np.zeros([grid_size[0] * grid_size[1], 3])
mx, my = [(grid_size[0] - 1) * square_size / 2, (grid_size[1] - 1) * square_size / 2]
for i in range(grid_size[0]):
for j in range(grid_size[1]):
object_points[i * grid_size[0] + j] = [i * square_size - mx, j * square_size - my, 0]
# Setup the camera information
f, p = [5e-3, 120e-8]
intrinsic = np.array([[f/p, 0, 0], [0, f/p, 0], [0, 0, 1]])
rvec = np.array([0.0, 0.0, 0.0])
tvec = np.array([0.0, 0.0, 3.0])
# Project the points
image_points, jacobian = cv2.projectPoints(object_points, rvec, tvec, intrinsic, distortion)
# Plot the points (using PyPlot)
plt.scatter(*zip(*image_points[:, 0, :]), marker='.')
plt.axis('equal')
plt.xlim((-4000, 4000))
plt.ylim((-4000, 4000))
plt.grid()
plt.show()
附加说明:
this
网站,其中说明:
为了测试这个我用了
积极的
失真矩阵(如上面的代码所示),它产生了枕形失真。
distortion = np.array([0.3, 0.001, 0.0, 0.0, 0.01])
在这幅图中,我清楚地创建了枕形失真,而不是桶形失真。
同样,如果我把我的失真系数
消极的
,这将导致枕形失真,我得到以下结果:
distortion = -np.array([0.3, 0.001, 0.0, 0.0, 0.01])
这是否意味着如果使用
功能?
谢谢你的帮助!