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 校正图像畸变;

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

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

相关推荐
互联网江湖1 天前
携程当学胖东来
人工智能
陌殇殇1 天前
001 Spring AI Alibaba框架整合百炼大模型平台 — 快速入门
人工智能·spring boot·ai
Proxy_ZZ01 天前
用Matlab绘制BER曲线对比SPA与Min-Sum性能
人工智能·算法·机器学习
黎阳之光1 天前
黎阳之光:以视频孪生领跑全球,赋能数字孪生水利智能监测新征程
大数据·人工智能·算法·安全·数字孪生
宇擎智脑科技1 天前
基于 SAM3 + FastAPI 搭建智能图像标注工具实战
人工智能·计算机视觉
F_U_N_1 天前
效率提升80%:AI全流程研发真实项目落地复盘
人工智能·ai编程
月诸清酒1 天前
24-260409 AI 科技日报 (Gemma 4发布一周下载破千万,开源模型生态加速演进)
人工智能·开源
2501_933329551 天前
技术架构深度解析:Infoseek舆情监测系统的全链路设计与GEO时代的技术实践
开发语言·人工智能·分布式·架构
X journey1 天前
机器学习进阶(16):如何防止过拟合
人工智能·机器学习
AI_Claude_code1 天前
ZLibrary访问困境方案四:利用Cloudflare Workers等边缘计算实现访问
javascript·人工智能·爬虫·python·网络爬虫·边缘计算·爬山算法