ZED2相机在windows上pycharm标定后,出现错误,该如何解决?

问题遇到的现象和发生背景

ZED2相机在windows上pycharm标定后,出现错误,总是无法标定,根据网上的思路,没有中文路径,opencv卸载了,也重新安装,还是没用。

用代码块功能插入代码,请勿粘贴截图
import glob
import pyzed.sl as sl
import cv2
import numpy as np
import os
class CameraZed2:
    def __init__(self,resolution=None,fps=30,depthMode = None):
        self.zed = sl.Camera()
        self.input_type = sl.InputType()
        self.init_params = sl.InitParameters(input_t=self.input_type)
        # 设置分辨率
        if resolution == "2K":
            self.init_params.camera_resolution = sl.RESOLUTION.HD2K
        elif resolution == "1080":
            self.init_params.camera_resolution = sl.RESOLUTION.HD1080
        else:  # 默认
            self.init_params.camera_resolution = sl.RESOLUTION.HD720
        self.init_params.camera_fps = fps  # 设置帧率
        # 设置获取深度信息的模式
        if depthMode == "PERFORMANCE":
            self.init_params.depth_mode = sl.DEPTH_MODE.PERFORMANCE
        elif depthMode == "QUALITY":
            self.init_params.depth_mode = sl.DEPTH_MODE.QUALITY
        else:
            self.init_params.depth_mode = sl.DEPTH_MODE.ULTRA
        self.init_params.coordinate_units = sl.UNIT.MILLIMETER  # 单位毫米
        # 打开相机
        err = self.zed.open(self.init_params)
        if err != sl.ERROR_CODE.SUCCESS:
            print(repr(err))
            self.zed.close()
            exit(1)

        self.runtime = sl.RuntimeParameters()
        self.runtime.sensing_mode = sl.SENSING_MODE.STANDARD
        self.savepath = ''  # 标定图像保存的路径

    def grab_imgs(self):  # 捕获左右图像用于相机标定(文件夹自动创建)
        img_l = sl.Mat()
        img_r = sl.Mat()
        num = 0
        # 自动创建保存文件夹
        import time
        name = time.strftime("%Y-%m-%d-%H-%M", time.localtime())
        self.savepath = 'A:/zed1/images/%s'% name
        if not os.path.exists(self.savepath):
             os.mkdir(self.savepath)

        while True:
            if self.zed.grab(self.runtime) == sl.ERROR_CODE.SUCCESS:
                self.zed.retrieve_image(img_l,sl.VIEW.LEFT)
                self.img_l = img_l.get_data()
                self.zed.retrieve_image(img_r,sl.VIEW.RIGHT)
                self.img_r = img_r.get_data()
                view = np.concatenate((self.img_l,self.img_r),axis=1)
                cv2.imshow('View',cv2.resize(view,(1920,540)))
                key = cv2.waitKey(1)
                if key & 0xFF == ord('s'):
                    savePath = os.path.join(self.savepath, "L{:0>3d}.png".format(num))
                    cv2.imwrite(savePath, self.img_l)
                    # savePath = os.path.join(self.savepath, "R{:0>3d}.png".format(num))
                    # cv2.imwrite(savePath, self.img_r)
                    num += 1
                if key & 0xFF == 27:
                    break
    # 以上保存图像,先保存,把下面的注释
# 类二:相机标定执行函数(单目校正)
class Cam_calibrate():  # 执行校正
    def __init__(self):
        # 终止条件
        self.criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
        # 准备对象点,棋盘方块交界点排列:6行8列 如 (0,0,0), (1,0,0), (2,0,0) ....,(6,8,0)
        self.row,self.col = 8,11
        self.objpoints = np.zeros((self.row * self.col, 3), np.float32)
        self.objpoints[:, :2] = np.mgrid[0:self.row, 0:self.col].T.reshape(-1, 2)

    def exe(self,dir):
        objectpoints = [] # 真实世界中的3d点
        imgpoints = []
        # 标定所用图像
        images = glob.glob('%s/*'%dir)
        for fname in images:
            img = cv2.imread(fname)
            gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
            # 寻找到棋盘角点
            ret, corners = cv2.findChessboardCorners(img, (self.row, self.col), None)
            # 如果找到,添加对象点,图像点(细化之后)
            if ret == True:
                # 添加每幅图的对应3D-2D坐标
                objectpoints.append(self.objpoints)
                corners = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1),self.criteria)
                imgpoints.append(corners)
                # 绘制并显示拐角
                cv2.drawChessboardCorners(img, (self.row, self.col), corners, ret)
                cv2.namedWindow('View')
                cv2.imshow("View", img)
                cv2.waitKey(0)
            cv2.destroyAllWindows()
        # 输出:相机内参、畸变系数、旋转矩阵(每个点都会得到一个)、平移矩阵(同左)
        ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objectpoints, imgpoints, gray.shape[::-1], None, None)
        print(ret,'\n返回相机矩阵:%s\n失真系数:%s\n旋转矩阵:%s\n%s\n平移向量::%s\n%s '%(mtx, dist, rvecs[0].shape,rvecs, tvecs[0].shape,tvecs))


if __name__ == "__main__":
    cam = CameraZed2(resolution='1080',fps=30)
    # cam.grab_imgs()  # 获取标定图像
    # 进行相机标定
    path = r'A:\zed1\images\2022-10-08-19-48'  # 棋盘格图片路径
    cal = Cam_calibrate()
    cal.exe(path)

运行结果及报错内容

cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\calib3d\src\calibration.cpp:3694: error: (-215:Assertion failed) nimages > 0 in function 'cv::calibrateCameraRO'

请问各路神仙,如何解决啊?