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

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

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

函数基本信息

函数原型(Python 版)

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

参数说明

返回值

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

核心功能

完整检测到角点:绘制所有角点,并连接成棋盘格网格(彩色线条);

未完整检测到角点:仅绘制检测到的零散角点(无网格);

角点以红色小圆点标记,网格以彩色线条连接(便于直观验证检测效果)。

使用步骤(完整示例)

完整代码(棋盘格角点检测 + 可视化)
bash 复制代码
# -*- coding:utf-8 -*-
import cv2 as cv
import sys


if __name__ == '__main__':
    # 读取图像
    image1 = cv.imread('./images/test01.jpg')
    image2 = cv.imread('./images/test02.png')
    if image1 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 校正图像畸变;

绘制角点验证标定结果的准确性。

如果需要相机标定的完整代码示例,可以补充说明,我会进一步完善。

相关推荐
kaikaile19951 分钟前
风、浪、流环境模型的船舶三自由度(纵荡、横荡、艏摇)运动仿真MATLAB
开发语言·人工智能·matlab
HERR_QQ3 分钟前
端到端课程自用 4 规划 基于自规划AR的端到端规划 AI 笔记
人工智能·笔记·自动驾驶·transformer
weisian15111 分钟前
基础篇--概念原理-1-Token是什么?——从原理到实战,一篇讲透
人工智能·职场和发展·token
大模型最新论文速读16 分钟前
Select to Think:蒸馏 token 排序能力,效果平均提升24%
论文阅读·人工智能·深度学习·机器学习·自然语言处理
无忧智库27 分钟前
跨行业数据要素可信流通体系建设:打破信任壁垒的完整工程方法论(WORD)
大数据·人工智能
mit6.82428 分钟前
NitroGen: AI 自动玩游戏
人工智能
小王毕业啦29 分钟前
2007-2024年 省级-农林牧渔总产值、农业总产值数据(xlsx)
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据
数据皮皮侠32 分钟前
上市公司创新韧性数据(2000-2024)|顶刊同款 EIR 指数
大数据·人工智能·算法·智慧城市·制造
科研前沿43 分钟前
纯视觉无感解算 + 动态数字孪生:室内外无感定位技术全新升级
大数据·人工智能·算法·重构·空间计算
暗夜猎手-大魔王44 分钟前
转载--AI Agent 架构设计:错误处理与容错设计(OpenClaw、Claude Code、Hermes Agent 对比)
人工智能