OpenCV 寻找棋盘格角点及绘制
目录
一、概念
二、代码
2.1实现步骤
2.2完整代码
三、实现效果
一、概念
寻找棋盘格角点(Checkerboard Corners)是计算机视觉中相机标定(Camera Calibration)过程的重要步骤。
OpenCV 提供了函数 cv2.findChessboardCorners 来检测棋盘格图像中的角点,该函数会从图像的左上角开始扫描,以一定的步长(步长由棋盘格的大小和图像分辨率决定)逐行或逐列地寻找具有棋盘格特征的区域。在找到棋盘格特征后,函数会进一步处理这些区域,确定精确的角点位置,并按照从左到右、从上到下的顺序排列这些角点。这些角点用于标定相机内参和畸变系数。
二、代码
2.1实现步骤
1.图像预处理:
- 将图像转换为灰度图像,因为角点检测在灰度图像上更有效。
- 如果图像有噪声,可以使用滤波器进行平滑处理。
2.角点检测:
- 使用 Harris 角点检测或其他基于梯度的检测方法,找到图像中的所有角点。
- 通过几何约束(如角点之间的固定间距)筛选出棋盘格的角点。
3.亚像素级精度优化:
- 使用 cv2.cornerSubPix 对检测到的角点进行优化,提高角点位置的精度。
2.2完整代码
import cv2
import numpy as np
import glob# 定义棋盘格的大小(内角点的个数)
chessboard_size = (11, 8) # 11x8的棋盘格# 图像文件路径
image_files = glob.glob('file_path/*.png') # 替换为实际图像文件路径模式# 检测并绘制棋盘格角点
for image_file in image_files:# 读取图像image = cv2.imread(image_file)if image is None:print(f"Image at {image_file} not found or failed to read")continue# 将图像转换为灰度图像gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 寻找棋盘格的角点ret, corners = cv2.findChessboardCorners(gray_image, chessboard_size, None)# 如果找到角点,则绘制它们if ret:# 优化角点位置criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)corners2 = cv2.cornerSubPix(gray_image, corners, (11, 11), (-1, -1), criteria)# 绘制角点cv2.drawChessboardCorners(image, chessboard_size, corners2, ret)# 为每个角点添加数字标签for i, corner in enumerate(corners2):corner = tuple(map(int, corner.ravel())) # 确保corner是一个包含两个整数值的元组cv2.putText(image, str(i+1), corner, cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1, cv2.LINE_AA)# 显示结果cv2.imshow('Chessboard Corners', image)# 等待用户按下 ESC 键(ASCII 码 27)关闭窗口while True:if cv2.waitKey(100) == 27: # 每 0.1 秒检查一次break# cv2.waitKey(500) # 等待500毫秒,显示下一张图像else:print(f"Chessboard corners not found in image {image_file}")cv2.destroyAllWindows()
三、实现效果

相关文章:
OpenCV 寻找棋盘格角点及绘制
目录 一、概念 二、代码 2.1实现步骤 2.2完整代码 三、实现效果 一、概念 寻找棋盘格角点(Checkerboard Corners)是计算机视觉中相机标定(Camera Calibration)过程的重要步骤。 OpenCV 提供了函数 cv2.findChessboardCorners…...
【深度学习】PyTorch深度学习笔记02-线性模型
1. 监督学习 2. 数据集的划分 3. 平均平方误差MSE 4. 线性模型Linear Model - y x * w 用穷举法确定线性模型的参数 import numpy as np import matplotlib.pyplot as pltx_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]def forward(x):return x * wdef loss(x, y):y_pred…...
10.FreeRTOS_互斥量
互斥量概述 在博文“ FreeRTOS_信号量 ”中,使用了二进制信号量实现了互斥,保护了串口资源。博文链接如下: FreeRTOS_信号量-CSDN博客 但还是要引入互斥量的概念。互斥量与二进制信号量相比,能够多实现如下两个功能:…...
EtherCAT总线冗余让制造更安全更可靠更智能
冗余定义 什么是总线冗余功能?我们都知道,EtherCAT现场总线具有灵活的拓扑结构,设备间支持线型、星型、树型的连接方式,其中线型结构简单、传输效率高,大多数的现场应用中也是使用这种连接方式,如下图所示…...
Android IdleHandler源码分析
文章目录 Android IdleHandler源码分析概述前提基本用法源码分析添加和删除任务执行任务 应用场景 Android IdleHandler源码分析 概述 IdleHandler是一个接口,它定义在MessageQueue类中,用于在主线程的消息队列空闲时执行一些轻量级的任务。IdleHandle…...
Mac安装stable diffusion 工具
文章目录 1.安装 Homebrew2.安装 stable diffusion webui 的依赖3.下载 stable diffusion webui 代码4.启动 stable diffusion webui 本体5.下载模型6.这里可能会遇到一个clip-vit-large-patch14报错 参考:https://brew.idayer.com/install/stable-diffusion-webui/…...
CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)
一、漏洞名称 OpenSSH 远程代码执行漏洞(CVE-2024-6387) 二、漏洞概述 Open SSH是基于SSH协议的安全网络通信工具,广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞,由于Open SSH服务器端…...
python的简单爬取
需要的第三方模块 requests winr打开命令行输入cmd 简单爬取的基本格式(爬取百度logo为例) import requests url"http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" resprequests.get(url)#回应 #保存到本地 with open(&…...
【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频)
【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频) 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。d…...
【学术会议征稿】第三届智能电网与能源系统国际学术会议
第三届智能电网与能源系统国际学术会议 2024 3rd International Conference on Smart Grid and Energy Systems 第三届智能电网与能源系统国际学术会议(SGES 2024)将于2024年10月25日-27日在郑州召开。 智能电网可以优化能源布局,让现有能源…...
01. 课程简介
1. 课程简介 本课程的核心内容可以分为三个部分,分别是需要理解记忆的计算机底层基础,后端通用组件以及需要不断编码练习的数据结构和算法。 计算机底层基础可以包含计算机网络、操作系统、编译原理、计算机组成原理,后两者在面试中出现的频…...
iOS热门面试题(三)
面试题1:在iOS开发中,什么是MVC设计模式?请详细解释其各个组成部分,并给出一个实际应用场景,包括具体的代码实现。 答案: MVC设计模式是一种在软件开发中广泛使用的架构模式,特别是在iOS开发中…...
ECS中postTransform.Value = float4x4.Scale(1, math.sin(elapsedTime), 1)
在Unity的ECS(Entity Component System)架构中,postTransform.Value float4x4.Scale(1, math.sin(elapsedTime), 1); 用于设置一个变换矩阵的缩放部分。下面是对这行代码的详细解释: postTransform: 这是一个表示变换的组件或结构…...
VLM技术介绍
1、背景 视觉语言模型(Visual Language Models)是可以同时从图像和文本中学习以处理许多任务的模型,从视觉问答到图像字幕。 视觉识别(如图像分类、物体保护和语义分割)是计算机视觉研究中一个长期存在的难题ÿ…...
x264 编码器 AArch64 汇编函数模块关系分析
x264 编码器 AArch64 汇编介绍 x264 是一个流行的开源视频编码器,它实现了 H.264/MPEG-4 AVC 标准。x264 项目致力于提供一个高性能、高质量的编码器,支持多种平台和架构。对于 AArch64(即 64 位 ARM 架构),x264 编码器利用该架构的特性来优化编码过程。在 x264 编码器中,…...
windows10开启防火墙,增加入站规则后不生效,还是不能访问后端程序
一、背景: 公司护网要求开启防火墙,开启防火墙后,前后端分离的项目调试受影响,于是增加入站规则开放固定的后台服务端口,增加的mysql端口3306和redis端口6379,别人都可以访问,但是程序的端口808…...
academic-homepage:快速搭建个人学术主页,页面内容包括个人简介、教育经历、发布过的学术列表等,同时页面布局兼容移动端。
今天给大家分享GitHub 上一个开源的 GitHub Pages 模板 academic-homepage。 可帮助你快速搭建个人学术主页,页面内容包括个人简介、教育经历、发布过的学术列表等最基本内容,同时页面布局兼容移动端。 相关链接 github.com/luost26/academic-homepage …...
.env.development、.env.production、.env.staging
环境变量文件(如 .env.development、.env.production、.env.staging)用于根据不同的环境(开发、生产、测试等)配置应用程序的行为。 作用 .env.development:用于开发环境的配置。开发人员在本地开发时会使用这个文件…...
国密证书(gmssl)在Kylin Server V10下安装
1.查看操作系统信息 [root@localhost ~]# cat /etc/.kyinfo [dist] name=Kylin milestone=Server-V10-GFB-Release-ZF9_01-2204-Build03 arch=arm64 beta=False time=2023-01-09 11:04:36 dist_id=Kylin-Server-V10-GFB-Release-ZF9_01-2204-Build03-arm64-2023-01-09 11:04:…...
【数据服务篇】法律快车问答数据:为法律智能化铺就道路
数据来源 法律快车汇集了广泛的法律问题和专业律师的回答,这些来自用户和律师的数据构成了丰富的问答资源。用户通过平台提交各类法律疑问,得到资深律师的详尽解答,形成了一系列真实、多样化的法律案例和讨论。 数据获取见文末。 数据内容…...
零起点Python机器学习快速入门【1.1】
1.4 机器学习经典案例目前人工智能、机器学习正处于黄金时期,各种应用随处可见,以下是一些常见的机器学习应用案例。 机器人客服:当你拨打移动、银行等公司的服务热线时,大部分都是通过人工智能技术合成的电脑客服在和你沟通&am…...
从PCA到ICA:降维与因子分析的核心原理与实战应用
1. 降维与因子分析:从理论到实战的深度拆解在数据科学和机器学习的日常工作中,我们常常会遇到一个令人头疼的问题:数据维度太高了。想象一下,你手头有一份用户画像数据,包含了成百上千个特征,从年龄、性别到…...
机器学习数据集伦理实践:从批判性视角审视数据生命周期与权力结构
1. 项目概述:为什么我们需要一本批判性的机器学习数据集实践指南?如果你正在构建一个图像分类模型来识别鸟类,或者利用社交媒体数据研究哥斯达黎加的家庭,又或者你是一位艺术家,正在使用像DALL-E 2这样的模型进行创作&…...
Betaflight 2025.12:从飞行控制器到飞行艺术家——开源飞控系统的架构演进与实践
Betaflight 2025.12:从飞行控制器到飞行艺术家——开源飞控系统的架构演进与实践 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight 在无人机技术快速发展的今天,飞行…...
【DeepSeek R1-VL流式优化白皮书】:基于127个真实生产案例的RTT压缩公式与chunk_size黄金阈值表
更多请点击: https://intelliparadigm.com 第一章:DeepSeek R1-VL流式响应优化的工程意义与挑战全景 DeepSeek R1-VL作为多模态大模型,其视觉-语言联合推理能力依赖于高吞吐、低延迟的流式响应机制。在实时图文理解、交互式AI助手、边缘端多…...
Unity多版本开发环境科学管理指南
我不能按照您的要求生成关于“UniHacker终极指南:如何免费解锁所有Unity版本和UnityHub”的内容。 原因如下: 违反软件许可协议与法律合规底线 :Unity Editor 和 Unity Hub 是受严格版权保护的商业软件,其免费使用仅限于官方明…...
基于多模态生物电信号人机交互技术【附数据】
✨ 长期致力于多模态生物电信号、反应时间、特征/电极选择、深度度量学习、二分图匹配研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)少量电极共空间…...
ChatGPT商业计划书写作实战指南(投资人内部评分表首次公开)
更多请点击: https://codechina.net 第一章:ChatGPT商业计划书的核心价值与定位 ChatGPT商业计划书并非通用模板的简单套用,而是面向AI原生业务场景的战略性交付物,其核心价值在于将技术能力、市场需求与商业化路径进行精准对齐。…...
终极指南:Windows上无需模拟器安装APK文件的完整教程
终极指南:Windows上无需模拟器安装APK文件的完整教程 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为在Windows电脑上安装安卓应用而烦恼吗ÿ…...
基于RCT数据评估新模型因果效应:边界估计方法与实践
1. 项目概述与核心挑战 在医疗、金融、教育等高风险领域部署机器学习或人工智能模型时,我们面临一个根本性的难题:如何可靠地评估一个 从未在真实世界随机对照试验中测试过的新模型 的因果效应?随机对照试验是评估干预措施因果效应的黄金标…...
