当前位置: 首页 > news >正文

方框标定代码

import numpy as np import cv2 import glob # 1. 准备标定板参数 chessboard_size = (7, 10) # 内角点数量 square_size = 13.0 # 毫米 # 2. 生成世界坐标系中的3D点 objp = np.zeros((chessboard_size[0]*chessboard_size[1], 3), np.float32) objp[:, :2] = np.mgrid[0:chessboard_size[0], 0:chessboard_size[1]].T.reshape(-1, 2) * square_size # 3. 存储对象点和图像点 objpoints = [] # 3D点 imgpoints = [] # 2D点 # 4. 读取所有标定图像 images = glob.glob('D:/DeepLearning/datasets/clibration/rect/*.png') image_size = None for fname in images: img = cv2.imread(fname) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) if image_size is None: image_size = gray.shape[::-1] # 查找棋盘格角点 ret, corners = cv2.findChessboardCorners(gray, chessboard_size, None) if ret: objpoints.append(objp) # 亚像素精确化 corners2 = cv2.cornerSubPix(gray, corners, (11,11), (-1,-1), (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)) imgpoints.append(corners2) # 可视化角点 cv2.drawChessboardCorners(img, chessboard_size, corners2, ret) cv2.imshow('Corners', img) cv2.imwrite("this.png",img) cv2.waitKey(500) cv2.destroyAllWindows() # 5. 相机标定 ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, image_size, None, None) print("相机内参矩阵:\n", mtx) print("\n畸变系数:", dist.ravel()) # 6. 评估标定误差 mean_error = 0 for i in range(len(objpoints)): imgpoints2, _ = cv2.projectPoints(objpoints[i], rvecs[i], tvecs[i], mtx, dist) error = cv2.norm(imgpoints[i], imgpoints2, cv2.NORM_L2)/len(imgpoints2) mean_error += error print("\n平均重投影误差: {} 像素".format(mean_error/len(objpoints))) # 7. 保存标定结果 np.savez('calibration_result.npz', mtx=mtx, dist=dist)
http://www.jsqmd.com/news/254696/

相关文章:

  • 揭秘TCP/IP协议栈:网络通信的核心架构
  • 揭秘TCP/IP协议栈:网络通信的核心架构
  • 捕捉瞬息万变的电信号世界:Waverunner力科610Zi示波器深度解读
  • vscode的几个版本说明
  • 存储技术全景:从基础原理到未来趋势
  • 存储技术全景:从基础原理到未来趋势
  • C++跨平台开发:挑战与解决方案
  • C++跨平台开发:挑战与解决方案
  • Java性能优化实战:从原理到技巧
  • Photoshop 图形与图像处理技术——第9章:实践训练3——图像修饰和色彩色调的调整
  • 闲置京东e卡回收新选择,让沉睡的购物卡焕发新生机 - 京顺回收
  • 5G、雷达、航天研发的“心脏”利器:是德N5182B 信号发生器全面解析
  • 不同版本的 chrome 开发者工具 CSS 属性变为斜体无法修改,如何解决?
  • Photoshop 图形与图像处理技术——第9章:实践训练4——图层和蒙版
  • 提示系统没人用?架构师教你3步打造爆款互动体验
  • Nvidia H100 算力服务器 Cuda、FabricManager、Container 安装和升级 - 教程
  • 2026年1月档案机构公司权威推荐:档案储存机构公司、档案整理机构公司、档案数字化机构公司、电子档案机构公司、整理卷宗档案机构公司、销毁档案机构公司等选择指南,智慧管理解决方案 - 海棠依旧大
  • Java基础补缺5:异常处理、常用工具类
  • 基于Spring Boot的疗养院管理系统的设计与实现(11711)
  • 基于SpringBoot的房屋交易平台的设计与实现(11712)
  • 强烈安利8个AI论文工具,继续教育学生轻松搞定论文写作!
  • 专科生必看!8个降AI率工具推荐,高效降AIGC神器
  • 基于springboot在线课程管理系统的设计与实现(11713)
  • 手把手教你9款AI神器1天生成25000字论文
  • 考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • springboot毕业设计成绩管理系统的设计与实现(11714)
  • 基于MATLAB的单闭环直流调速系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 即插即用系列(代码实践) | CVPR 2025 MONA:多尺度方向感知适配器——仅需5%参数,性能超越全量微调 (5% > 100%)
  • 基于MATLAB的IIR FIR滤波器的设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • VP引导定位软件-定位纠偏(不带角度)