news 2026/6/9 19:41:40

cv.drawChessboardCorners 是 OpenCV 中用于可视化棋盘格角点检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cv.drawChessboardCorners 是 OpenCV 中用于可视化棋盘格角点检测

cv.drawChessboardCorners 是 OpenCV 中用于可视化棋盘格角点检测

cv.drawChessboardCorners 是 OpenCV 中用于可视化棋盘格角点检测结果的核心函数,常配合 cv.findChessboardCorners 使用,主要用于相机标定、立体视觉等场景的结果验证。

函数基本信息

函数原型(Python 版)

cv.drawChessboardCorners(image, patternSize, corners, patternWasFound) → image

参数说明

返回值

绘制了角点的图像(与输入 image 是同一对象,原地修改)。

核心功能

完整检测到角点:绘制所有角点,并连接成棋盘格网格(彩色线条);
未完整检测到角点:仅绘制检测到的零散角点(无网格);
角点以红色小圆点标记,网格以彩色线条连接(便于直观验证检测效果)。

使用步骤(完整示例)

完整代码(棋盘格角点检测 + 可视化)
# -*- coding:utf-8 -*-importcv2 as cvimportsysif__name__=='__main__':# 读取图像image1=cv.imread('./images/test01.jpg')image2=cv.imread('./images/test02.png')ifimage1 is None or image2 is None: print('Failed to read test01.jpg or test02.png.')sys.exit()# 转为灰度图像gray1=cv.cvtColor(image1, cv.COLOR_BGR2GRAY)gray2=cv.cvtColor(image2, cv.COLOR_BGR2GRAY)# 定义数目尺寸board_size1=(9,6)board_size2=(7,7)# 检测角点_, points1=cv.findChessboardCorners(gray1, board_size1)_, points2=cv.findCirclesGrid(gray2, board_size2)# 细化角点坐标_, points1=cv.find4QuadCornerSubpix(gray1, points1,(5,5))_, points2=cv.find4QuadCornerSubpix(gray2, points2,(5,5))# 绘制角点检测结果image1=cv.drawChessboardCorners(image1, board_size1, points1, True)image2=cv.drawChessboardCorners(image2, board_size2, points2, True)# 展示结果cv.imshow('Square Result', image1)cv.imshow('Circle Result', image2)cv.waitKey(0)cv.destroyAllWindows()

关键说明

棋盘格准备:需使用黑白相间的棋盘格(如 9x6 内角点对应 10x7 个方格);
亚像素细化:cv.cornerSubPix 是可选步骤,但能大幅提升角点坐标精度(对相机标定至关重要);
检测失败处理:若 ret=False,说明未完整检测到所有角点,需检查图像(如光照、棋盘格完整性)。

常见问题与解决方案

扩展应用

cv.drawChessboardCorners 常与相机标定流程结合:
检测多张棋盘格图像的角点;
用 cv.calibrateCamera 计算内参 / 外参;
用 cv.undistort 校正图像畸变;
绘制角点验证标定结果的准确性。
如果需要相机标定的完整代码示例,可以补充说明,我会进一步完善。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 1:10:18

智能体开发技术体系架构(Java方向)

## 应用交互层 (Application Interaction Layer) - **Web框架**:- Spring Boot- Spring MVC - **API网关**:- Spring Cloud Gateway- Kong - **前端框架**:- React.js- Vue.js- Vue.js - **消息队列客户端**:- RabbitMQ Client- Apache Kafka Client - **WebSocket支持**:- Soc…

作者头像 李华
网站建设 2026/6/9 2:00:45

Open-AutoGLM如何实现一键点咖啡?:深度拆解AutoGLM的自动化决策机制

第一章:Open-AutoGLM点咖啡在现代智能办公环境中,自动化任务正逐步渗透到日常生活的细节中。Open-AutoGLM 是一个基于开源大语言模型的自动化框架,能够通过自然语言理解与外部系统交互,实现诸如“点一杯咖啡”这样的复杂操作流程。…

作者头像 李华
网站建设 2026/6/9 1:23:41

Python+Vue的企业合同管理系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 企业合同管…

作者头像 李华
网站建设 2026/6/9 1:59:46

Open-AutoGLM需要root吗?:5大常见误解与无需特权运行的3种实战方法

第一章:Open-AutoGLM需要root吗?Open-AutoGLM 是一款基于 AutoGLM 框架开发的开源自动化工具,主要用于智能任务调度与本地大模型联动。在部署和运行过程中,用户普遍关心是否需要 root 权限才能正常使用。答案是:**通常…

作者头像 李华
网站建设 2026/6/9 1:42:24

Python+Vue的-家用电器在线销售系统的设计与实现 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人技术栈文章下方名片联系我即可~解决的思路…

作者头像 李华
网站建设 2026/6/9 18:54:54

Open-AutoGLM需要root吗?:资深工程师亲述90%用户忽略的权限最小化原则

第一章:Open-AutoGLM需要root吗?Open-AutoGLM 是一个面向自动化任务与自然语言交互的开源框架,其设计目标是降低用户在本地设备上部署智能代理的门槛。关于是否需要 root 权限运行该工具,答案是否定的——在大多数标准使用场景下&…

作者头像 李华