gpt4 book ai didi

python - 如何在 python 中找到 open-cv 相机校准常量,OpenCV 错误:断言失败(nimages > 0)在 cv::calibrateCamera

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:23 25 4
gpt4 key购买 nike

我想用下面的代码找到相机校准常数。但是,我有一些我不知道的错误消息。请帮助我。

import cv2
import numpy as np
import glob[enter image description here][1]

# termination criteria
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)

# 7*7 chess board, prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)
object_point = np.zeros((7*7, 3), np.float32)
object_point[:, :2] = np.mgrid[0:7, 0:7].T.reshape(-1, 2)

# 3d point in real world space
object_points = []
# 2d points in image plane
image_points = []
h, w = 0, 0

images = glob.glob('chess board/*.jpg')

for file_name in images:
image = cv2.imread(file_name)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
h, w = gray.shape[:2]

# find chess board corners
ret, corners = cv2.findChessboardCorners(gray, (7, 7), None)

# add object points, image points
if ret:
object_points.append(object_point)
cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria)
image_points.append(corners)

# draw and display the corners
cv2.drawChessboardCorners(image, (7, 7), corners, ret)
cv2.imshow('image', image)
cv2.waitKey(500)

# calibration
retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(object_points, image_points, (w, h), None, None)

print "camera matrix:\n", cameraMatrix

# pi camera intrinsic parameters
ay = cameraMatrix[1, 1]
u0 = cameraMatrix[0, 2]
v0 = cameraMatrix[1, 2]
print "Ay:", ay
print "u0:", u0
print "v0:", v0

cv2.destroyAllWindows()ode here

这是我收到的错误信息:

C:\Python27\python.exe "C:/Users/MOMO/PycharmProjects/test/training image/picam_calibration.py" OpenCV Error: Assertion failed (nimages > 0) in cv::calibrateCamera, file ........\opencv\modules\calib3d\src\calibration.cpp, line 3415 Traceback (most recent call last): File "C:/Users/MOMO/PycharmProjects/test/training image/picam_calibration.py", line 40, in retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(object_points, image_points, (w, h), None, None) cv2.error: ........\opencv\modules\calib3d\src\calibration.cpp:3415: error: (-215) nimages > 0 in function cv::calibrateCamera

最佳答案

您应该检查传递给函数 findChessboardCorners 的角尺寸是否正确,代码中的 (7, 7)。

这符合你的棋盘图案吗?

关于python - 如何在 python 中找到 open-cv 相机校准常量,OpenCV 错误:断言失败(nimages > 0)在 cv::calibrateCamera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38581886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com