摄像头的标定(TODO)
1 相机标定的意义相机标定主要用来求解摄像头的内部光学参数焦距、光心坐标、镜头畸变系数以及摄像头相对于世界坐标系的外部位姿以此校正镜头带来的桶形、枕形等图像畸变只有拿到精准标定参数之后才能够建立起现实三维空间坐标和画面二维像素之间的映射关系为后续双目深度测算、AR 空间定位、手势识别、麦克风‑摄像头空间配准、波束成形声源定位等上层算法提供可靠的数据基础消除镜头硬件误差带来的算法偏差。标定有两层如果是给人眼看主要就是解决畸变变形和粗略校正桶形、枕形畸变只需要修正肉眼可见的画面畸变。看着舒服、直线不要弯满足观感即可。如果是给机器学习用的那么需要整套高精度完整内参、畸变系数、外参对精度要求严苛得多。必须保证几何精度优先保证每一个像素对应的空间位置准确。2 相机标定的方法基本就使用标定板拍摄几十张照片根据照片来做标定。3 一个例子一张图理清所有的RAW 、RGB、YUV格式import cv2 import numpy as np import glob # 1. 准备标定板的角点坐标 # 假设使用 9x6 的棋盘格每个方格的实际大小为 1 单位例如 1 厘米 chessboard_size (9, 6) # 棋盘格内角点数量 (width, height) square_size 1.0 # 棋盘格方格的物理尺寸单位任意例如厘米 # 生成标定板的角点坐标 (0,0,0), (1,0,0), (2,0,0), ..., (8,5,0) 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) objp * square_size # 将角点坐标乘以实际尺寸 # 2. 存储对象点和图像点 objpoints [] # 真实世界中的点 imgpoints [] # 图像中的点 # 3. 读取标定图像 images glob.glob(calibration_images/*.jpg) # 假设标定图像存储在 calibration_images 文件夹中 if not images: print(未找到标定图像请检查路径。) exit() for fname in images: img cv2.imread(fname) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 4. 检测棋盘格角点 ret, corners cv2.findChessboardCorners(gray, chessboard_size, None) if ret: objpoints.append(objp) imgpoints.append(corners) # 5. 绘制并显示角点 cv2.drawChessboardCorners(img, chessboard_size, corners, ret) cv2.imshow(Chessboard Corners, img) cv2.waitKey(500) # 显示 500 毫秒 cv2.destroyAllWindows() # 6. 检查是否检测到足够的角点 if len(objpoints) 10: print(检测到的标定图像数量不足请提供更多图像) exit() # 7. 标定摄像头 ret, K, dist, rvecs, tvecs cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None) if not ret: print(摄像头标定失败) exit() # 8. 输出标定结果 print(摄像头内部参数矩阵 (K):) print(K) print(\n畸变系数 (dist):) print(dist) # 9. 校正图像畸变 # 读取测试图像 test_image cv2.imread(test_image.jpg) # 假设测试图像为 test_image.jpg if test_image is None: print(未找到测试图像请检查路径。) exit() h, w test_image.shape[:2] # 获取最优的新摄像头矩阵 newK, roi cv2.getOptimalNewCameraMatrix(K, dist, (w, h), 1, (w, h)) # 校正图像畸变 dst cv2.undistort(test_image, K, dist, None, newK) # 裁剪校正后的图像可选 x, y, w, h roi dst dst[y:yh, x:xw] # 10. 显示结果 cv2.imshow(Original Image, test_image) cv2.imshow(Undistorted Image, dst) cv2.waitKey(0) cv2.destroyAllWindows() # 11. 保存校正后的图像可选 cv2.imwrite(undistorted_image.jpg, dst) print(校正后的图像已保存为 undistorted_image.jpg)

相关新闻

AI编程工具横向评测:Codex、Cursor等4款工具如何与DeepSeek V4 Flash协作

AI编程工具横向评测:Codex、Cursor等4款工具如何与DeepSeek V4 Flash协作

最近在尝试将 AI 编程工具集成到开发工作流中时,发现市面上工具繁多,但真正能与 DeepSeek V4 Flash 这类强大模型顺畅协作、提升编码效率的“搭档”却不好找。Composio 作为一个新兴的 AI 工具集成平台,为我们提供了一个绝佳的测试场。本文将…

2026/8/11 18:10:33 阅读更多 →
防爆AP部署实务:石油化工罐区无线覆盖设计与常见问题

防爆AP部署实务:石油化工罐区无线覆盖设计与常见问题

经验场景:当无线信号"撞上"万吨储罐在石油化工罐区部署无线网络有一个绕不开的物理挑战——直径数十米、高度十几米的钢制储罐群,会对2.4GHz和5GHz无线射频信号产生严重的衰减和反射效应。现场运维人员经常遇到这样的困境:储罐一侧…

2026/8/11 18:10:33 阅读更多 →
JGIT高阶应用:LCA算法与BlobId实战指南

JGIT高阶应用:LCA算法与BlobId实战指南

1. JGIT入门:为什么开发者需要掌握这个Java版Git工具第一次接触JGIT是在2015年一个企业级代码审计项目中,当时需要批量分析上千个Git仓库的提交历史。原生的Git命令在Java环境中调用起来异常笨拙,直到发现了这个Eclipse基金会维护的纯Java Gi…

2026/8/11 18:09:30 阅读更多 →

最新新闻

NX二次开发-编辑NX自带的命令

NX二次开发-编辑NX自带的命令

适用版本:NX 所有版本一、概述Menuscript 是NX定义菜单的ASCII脚本,可以使用这个脚本编辑NX菜单,并以无缝集成的方式为自己的应用程序创建自定义菜单;也可以编辑替换NX自带现有的功能命令。二、功能说明本文以编辑“打开 ”命令来…

2026/8/11 18:55:50 阅读更多 →
2026年哪个GEO营销系统效果最好?从概念认知到决策落地

2026年哪个GEO营销系统效果最好?从概念认知到决策落地

一、基础认知:重新理解GEO的核心逻辑1.1 什么是GEOGEO,全称为Generative Engine Optimization,即生成式引擎优化。它指的是面向AI搜索、智能问答和大模型生成结果的优化方法,核心目标是提升品牌信息在AI生成答案中的引用概率与呈现…

2026/8/11 18:55:50 阅读更多 →
DxWrapper实战指南:Windows 10/11经典游戏5步高效兼容性解决方案

DxWrapper实战指南:Windows 10/11经典游戏5步高效兼容性解决方案

DxWrapper实战指南:Windows 10/11经典游戏5步高效兼容性解决方案 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .a…

2026/8/11 18:55:50 阅读更多 →
Docker部署MySQL:从环境准备到生产实践

Docker部署MySQL:从环境准备到生产实践

1. 为什么选择Docker部署MySQL?在当今的开发和运维环境中,Docker已经成为部署数据库服务的首选方案之一。我最初接触Docker部署MySQL是在2016年,当时团队需要为多个微服务项目提供隔离的数据库实例。传统安装方式需要为每个项目单独配置虚拟机…

2026/8/11 18:55:50 阅读更多 →
思源宋体CN:7种字重的免费商用字体完整实用指南

思源宋体CN:7种字重的免费商用字体完整实用指南

思源宋体CN:7种字重的免费商用字体完整实用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目寻找既专业又免费的字体解决方案吗?思源宋体…

2026/8/11 18:55:50 阅读更多 →
PCSX2终极指南:5步快速安装配置PS2模拟器,畅玩经典游戏

PCSX2终极指南:5步快速安装配置PS2模拟器,畅玩经典游戏

PCSX2终极指南:5步快速安装配置PS2模拟器,畅玩经典游戏 【免费下载链接】pcsx2 PCSX2 - The Playstation 2 Emulator 项目地址: https://gitcode.com/GitHub_Trending/pc/pcsx2 PCSX2是一款功能强大的免费开源PlayStation 2模拟器,让你…

2026/8/11 18:54:50 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →