gpt4 book ai didi

python - cv2.cornerSubPix() 函数返回 None 值

转载 作者:太空宇宙 更新时间:2023-11-03 21:35:17 24 4
gpt4 key购买 nike

cv2.cornerSubPix() 函数返回 None 值。

我正在学习官方 opencv 教程。现在我在相机校准主题。

以下是我的代码:-

import numpy as np
import cv2
import glob

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

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

# Arrays to store object points and image points from all the images.
objpoints = [] # 3d point in real world space
imgpoints = [] # 2d points in image plane.

images = glob.glob('*.jpg')

for fname in images:
img = cv2.imread(fname)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# Find the chess board corners
ret, corners = cv2.findChessboardCorners(gray, (7,6),None)

# If found, add object points, image points (after refining them)
if ret == True:
objpoints.append(objp)

corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
imgpoints.append(corners2)

# Draw and display the corners
img = cv2.drawChessboardCorners(img, (7,6), corners2,ret)
cv2.imshow('img',img)
cv2.waitKey(500)

cv2.destroyAllWindows()

corners2 在以下行中的值为 None:

corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)

因为这一行 cv2.imshow() 也显示错误。

灰色、角落和标准在其中具有一定的值(value)。

最佳答案

我遇到了同样的问题,结果证明是示例教程代码和我正在运行的由 PythonXY 安装的版本之间的版本问题。

如果您的问题是 corners2 和 img 值都被 None 填充,那么这是因为您使用的 OpenCV 版本旨在使用这些命令来更新输入而不是重新定义输入。

修复很简单,将这两行从:

corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
img = cv2.drawChessboardCorners(img, (7,6), corners2,ret)`

到:

cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
cv2.drawChessboardCorners(img, (7,6), corners ,ret)

关于python - cv2.cornerSubPix() 函数返回 None 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117252/

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