13条回答 默认 最新
关注 获得6.30元问题酬金 原因
1、该错误表示作为参数提供的向量之一为空。
如果不是所有条件都满足,该函数有一个断言阻止您使用它。这次它检查是否有足够的图像点(nimages > 0必须为真)。2、发生错误是因为您没有足够的图像点。由于以下原因:
该算法循环遍历您的每一张图像,但无法检测到棋盘(否则您会看到消息“检测到棋盘!”)。
由于它无法检测到棋盘,因此 img_points 数组保持为空并按原样发送到 calibrateCamera 函数。calibrateCamera 函数有一个内部断言,如果没有图像点,您将无法使用它。解决方法
1、查看图片路径是否正确
2、拍摄更多或更好的照片。
可以查看有的教程中的第 3 步:https ://medium.com/@omar.ps16/stereo-3d-reconstruction-with-opencv-using-an-iphone-camera-part-ii-77754b58bfe0或者您可以查看此资源:http ://aishack.in/tutorials/calibrating-undistorting-opencv-oh-yeah/
无论如何,问题很可能出在您拍摄照片的方式上,而不是代码本身。
另外
作为一般经验法则:- 确保您选择的棋盘图案有足够大的正方形。并且这些正方形之间有明显的区别。
- 确保棋盘图案具有纯色背景(即背景中没有纹理),最好是白色。
- 确保您的棋盘图案在您放置的表面上完全平坦(纸上的裂缝或其他人工制品可能会影响准确性)。
- 确保从不同的角度和角度拍摄照片。(不要偏向一侧,确保从各个方面拍照)。
参考:
https://github.com/OmarPadierna/3DReconstruction/issues/2除此之外
另外一件事,您应该在进行校准之前检查它们是否有点,
例如添加以下代码:if len(objpoints) == len(imgpoints) and len(objpoints) > 0: ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None) else: print("not enough points to calibrate")
如有问题及时沟通
解决 1无用
悬赏问题
- ¥15 C#读写EXCEL文件,不同编译
- ¥15 如何提取csv文件中需要的列,将其整合为一篇完整文档,并进行jieba分词(语言-python)
- ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
- ¥15 扩散模型sd.webui使用时报错“Nonetype”
- ¥15 stm32流水灯+呼吸灯+外部中断按键
- ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
- ¥15 NX MCD仿真与博途通讯不了啥情况
- ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
- ¥15 gradio的web端页面格式不对的问题
- ¥15 求大家看看Nonce如何配置