Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和OpenCV:-215:尝试调用CalibleCamera时出现断言失败错误_Python_Python 3.x_Opencv_3d Reconstruction - Fatal编程技术网

Python和OpenCV:-215:尝试调用CalibleCamera时出现断言失败错误

Python和OpenCV:-215:尝试调用CalibleCamera时出现断言失败错误,python,python-3.x,opencv,3d-reconstruction,Python,Python 3.x,Opencv,3d Reconstruction,我是OpenCV的新手,正在尝试学习棋盘图像三维重建的在线教程 我正在使用以下代码进行此过程: import glob import cv2 import numpy as np chessboard_size = (7,5) criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) #objp = np.zeros((9*6,3), np.float32) #objp[:,:2] = np.mgri

我是OpenCV的新手,正在尝试学习棋盘图像三维重建的在线教程

我正在使用以下代码进行此过程:

import glob
import cv2
import numpy as np

chessboard_size = (7,5)

criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
#objp = np.zeros((9*6,3), np.float32)
#objp[:,:2] = np.mgrid[0:6.0:9].T.reshape(-1,2)
objp = np.zeros((np.prod(chessboard_size),3),dtype=np.float32)
objp[:,:2] = np.mgrid[0:chessboard_size[0], 0:chessboard_size[1]].T.reshape(-1,2)
objp = np.array([objp])

objpoints = []
imgpoints = []
images = glob.glob('./img/*')

for fname in images:
    img = cv2.imread(fname)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ret , corners = cv2.findChessboardCorners(gray,(6,9), None)
    #corners = np.array([[corner for [corner] in corners]])

    if ret == True:
        objpoints.append(objp)
        corners2 = cv2.cornerSubPix(gray, corners, (11,11), (-1,-1), criteria)
        imgpoints.append(corners)

        cv2.drawChessboardCorners(img, (6,9), corners2, ret)
    
    ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None)
但是,我不断遇到以下错误:

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-95hbg2jt\opencv\modules\calib3d\src\calibration.cpp:3689: error: (-215:Assertion failed) nimages > 0 in function 'cv::calibrateCameraRO'
我这里有两个问题:

  • 我能做些什么来克服这个错误
  • 如何显示三维重建后的结果图像
  • 我使用以下图像作为输入:


    TIA
    断言失败
    ,是的,但它也表示断言是
    nimages>0

    这意味着您没有向
    calibleCamera
    提供任何数据

    为了实现这一点,
    findChessboardCorners
    在第一张图片中没有找到任何角落

    请使用调试器或至少使用
    print(…)
    打印变量值。

    为了与下面的内容保持一致,您应该输入“chessboard_size=(6,9)”,不是吗?此外,drawChessboardCorners不会提供任何信息,除非在其后面添加:“cv2.imshow('test',img”);cv2.waitKey();cv2.destroyAllWindows(),以便生成可见的输出。当做