OpenCV相机标定全过程

2023-11-09

一、OpenCV标定的几个常用函数


findChessboardCorners() 棋盘格角点检测

bool findChessboardCorners( InputArray image,
                                Size patternSize,
                                OutputArray corners,
                                int flags = CALIB_CB_ADAPTIVE_THRESH +
                                CALIB_CB_NORMALIZE_IMAGE );

第一个参数是输入的棋盘格图像(可以是8位单通道或三通道图像);

第二个参数是棋盘格内部的角点的行列数(注意:不是棋盘格的行列数,如棋盘格的行列数分别为4、8,而内部角点的行列数分别是3、7,因此这里应该指定为cv::Size(3, 7));

第三个参数是检测到的棋盘格角点,类型为std::vectorcv::Point2f。

第四个参数flag,用于指定在检测棋盘格角点的过程中所应用的一种或多种过滤方法,可以使用下面的一种或多种,如果都是用则使用OR:

cv::CALIB_CB_ADAPTIVE_THRESH:使用自适应阈值将图像转化成二值图像

cv::CALIB_CB_NORMALIZE_IMAGE:归一化图像灰度系数(用直方图均衡化或者自适应阈值)

cv::CALIB_CB_FILTER_QUADS:在轮廓提取阶段,使用附加条件排除错误的假设

cv::CALIB_CV_FAST_CHECK:快速检测

cv::drawChessboardCorners() 棋盘格角点的绘制

drawChessboardCorners( InputOutputArray image,

                           Size patternSize,
                           InputArray corners,
                           bool patternWasFound );

image为8-bit,三通道图像

patternSize,每一行每一列的角

corners,已经检测到的角

patternWasFound,findChessboardCorners的返回值


find4QuadCornerSubpix() 对粗提取的角点进行精确化

find4QuadCornerSubpix( InputArray img,
                           InputOutputArray corners,
                           Size region_size );

image源图像

corners,提供角点的初始坐标

region_size: 搜索窗口的一般尺寸

cornerSubPix() 亚像素检测

void cornerSubPix( InputArray image,
                       InputOutputArray corners,
                       Size winSize,
                       Size zeroZone,
                       TermCriteria criteria );

image源图像

corners,提供角点的初始坐标,返回更加精确的点

winSize,搜索窗口的一般尺寸,如果winSize=Size(5,5),则search windows为1111

winSize,死区的一般尺寸,用来避免自相关矩阵的奇点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV相机标定全过程 的相关文章

  • 将 RGB 转换为黑色或白色

    我如何在Python中获取RGB图像并将其转换为黑白图像 不是灰度 我希望每个像素要么是全黑 0 0 0 要么是全白 255 255 255 流行的 Python 图像处理库中是否有任何内置功能可以完成此任务 如果不是 最好的方法是循环遍历
  • caffe安装:opencv libpng16.so.16链接问题

    我正在尝试在 Ubuntu 14 04 机器上使用 python 接口编译 caffe 我已经安装了 Anaconda 和 opencvconda install opencv 我还安装了咖啡中规定的所有要求 并更改了注释块makefile
  • ECC 导致多光谱图像的图像对齐失败

    我正在尝试将 RGB 图像与 IR 图像 单通道 对齐 目标是创建 4 通道图像 R G B IR 为了做到这一点 我正在使用cv2 findTransformECC如中所述这个非常简洁的指南 https learnopencv com i
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind
  • OpenCV非旋转图像拼接

    我正在 OpenCV 中进行图像拼接 从不同位置拍摄平面场景的照片并尝试构图全景图 我修改了缝合示例以满足我的需要 openCV 拼接管道的问题是 它假设相机纯粹旋转 但对我来说情况并非如此 当拍摄的照片与场景完全正交时 没有相机旋转 只是
  • 从索贝尔确定图像梯度方向?

    我正在尝试使用 openCV 的 Sobel 方法的结果来确定图像梯度方向 我知道这应该是一个非常简单的任务 我从此处复制了许多资源和答案中的方法 但无论我做什么 所得方向始终在 0 57 度之间 我希望范围为 0 360 我相信所有的深度
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 从视频/图像中提取元数据

    我从 IP 摄像机获取 MJPEG 流 我正在查看该流并将其保存在计算机上 可以找到我的操作代码here https stackoverflow com questions 21702477 how to parse mjpeg http
  • OpenCV 中“IplImage”和“CvMat”的全称是什么?

    有一个IplImage and CvMat在 OpenCV 中 他们的全名是什么 IPL in IplImage代表英特尔处理库 这是Intel维护OpenCV时的残余 CV in cvMat代表计算机视觉矩阵 这是图形中常用的数据结构 I
  • `opencv.android.JavaCameraView` 和 `opencv.android.NativeCameraView` 有什么区别

    正如主题中所述 有什么区别opencv android JavaCameraView and opencv android NativeCameraView 与其他主要优点相比 有哪些优点可以提供更多选择 来自OpenCV 文档 http
  • OpenCV 完美识别物体

    我有一个应用程序 我想一次跟踪 2 个在图片中相当小的对象 该应用程序应该在 Android 和 iPhone 上运行 因此算法应该是高效的 对于我的客户来说 如果我们提供一些模式以及附加到要跟踪的对象的软件 以获得易于识别的目标 那就完全
  • ValueError:当数组不是序列时设置带有序列的数组元素

    您好 此代码旨在存储使用 open cv 绘制的矩形的坐标 并将结果编译为单个图像 import numpy as np import cv2 im cv2 imread 1 jpg im3 im copy gray cv2 cvtColo
  • 如何在 OpenCV 中将 Float Mat 写入文件

    我有一个矩阵 Mat B 480 640 CV 32FC1 包含浮点值 我想将此矩阵写入一个可以打开的文件Notepad https en wikipedia org wiki Windows Notepad or 微软Word https
  • Android API人脸检测与OpenCV/JavaCV人脸检测

    我在 Android 设备上使用了本地 Android 人脸检测 但它似乎很慢 而且我不太确定其可靠性 我还使用了 OpenCV 的人脸检测 但仅限于 PC 而不是 Android 设备 对于 Android 我猜我必须使用 JavaCV
  • 将向量 转换为大小为 (n x 3) 的 Mat,反之亦然

    我有 Point3d 向量 向量形式的点云 如果我使用 OpenCV 提供的转换 比如 cv Mat tmpMat cv Mat pts Here pts is vector
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何绘制每个分割对象的轮廓

    我应用分水岭分割来检测触摸对象 这样做效果很好 现在 我想绘制每个对象的轮廓 这样我就可以获得它们的长度 面积 矩等 但是分割结果中的对象仍然是触摸的 所以 我没能画出每一个的轮廓 如何绘制每个对象的轮廓 include
  • 在 HSV 颜色空间内定义组织学图像掩模的颜色范围(Python、OpenCV、图像分析):

    为了根据颜色将组织学切片分成多个层 我修改了 OpenCV 社区提供的一些广泛分布的代码 1 我们的染色程序用不同的颜色标记组织横截面的不同细胞类型 B 细胞为红色 巨噬细胞为棕色 背景细胞核为蓝色 I m interested in se

随机推荐

  • android 下拉状态栏(SystemUI)常见修改记录

    摘要 下拉状态栏 1 下拉状态栏的亮度条 frameworks base packages SystemUI src com android systemui qs QSPanel javamBrightnessView对应布局文件 qui
  • 爬虫实例8(os模块的用法)

    import requests import os url https ss3 bdstatic com 70cFv8Sh Q1YnxGkpoWK1HF6hhy it u 460770515 1829173594 fm 26 gp 0 jp
  • 什么是数字水印

    经常有文章把数字签名和数字水印 傻傻分不清 那今天就介绍一下数字水印 一 数字水印技术原理 数字水印是一种信息隐藏技术 它利用人体感官的限制 将数字信号 如图像 文字 符号 数字等一切可以作为标记 标识的信息与原始数据 如图像 音频 视频数
  • 替代for循环,让Python代码更pythonic

    通常如下使用场景中会用到 for 循环 在一个序列来提取一些信息 从一个序列生成另一个序列 写 for 已成习惯 幸运的是 Python 已经有很多工具可以帮助你完成这些工作 你只需要转移你的思路 并以不同的角度来思考它 通过避免编写 fo
  • Pycharm更换python解释器

    Pycharm工程如何更换pycharm解析器 Mac Pycharm gt Preferences 然后会出来如下界面 Windows file gt Default Settings
  • leetcode 300. 最长递增子序列

    2023 8 23 本题也是dp算法解决的经典题型 dp i 的含义 数组前i个元素的最长递增子序列长度 不多说 直接上代码 class Solution public int lengthOfLIS vector
  • 为什么Git用SHA做版本控制,而非像SVN用int数字或者是时间戳

    在分布式领域中 做的最出色的莫过于Git 而Git主要强大之处就在于运用sha作为版本控制的算法 而许多分布式架构的项目也都意义效仿 而sha算法为什么如此神奇呢 SHA是什么 百度百科定义是 安全散列算法 英语 Secure Hash A
  • pycharm+gitee安装与配置

    下载安装 1 下载地址 https www jetbrains com pycharm download section windows 选择这个免费版进行安装 2 自定义安装路径 3 根据自己的需求选择项 点击下一步 一步步的安装下去就行
  • please select a valid python interpreter(请选择一个解释器)

    1 更改Pycharm的设置 打开settings CTRL ALT S 或者file gt settings 2 在查询框中输interpreter 进行查询 3 选择界面右边上的配置按钮 右击选择add local 4 选择system
  • Linux服务器成功安装CUDA11.3和cudnn

    说在前面 NVIDIA的显卡驱动与CUDA的版本并不是严格的一一对应关系 CUDA实际上也只是一个工具包 我们可以根据自己的需求进行安装 即可以安装多个CUDA版本 同时CUDNN是一个SDK 专门用于神经网络的加速包 它与CUDA也没有严
  • 巨细!Python爬虫详解

    Python技术 爬虫 又称为网页蜘蛛 网络机器人 在 FOAF 社区中间 更经常的称为网页追逐者 它是一种按照一定的规则 自动地抓取网络信息的程序或者脚本 如果我们把互联网比作一张大的蜘蛛网 那一台计算机上的数据便是蜘蛛网上的一个猎物 而
  • 第十一章 GetAway服务网关详解

    目录 一 服务网关使用背景 二 服务网关的种类和区别 三 Gateway 简介 优点 缺点 Gateway组成 三 快速入门案例 1 创建网关服务 引入 GetAway 依赖 2 创建主类 3 配置GetAway网关服务 4 创建 订单服务
  • PyCharm安装教程,图文教程(超详细)

    作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 推荐专栏 对网络安全感兴趣的小伙伴可以关注专栏 网络安全入门到精通 PyCharm 一 PyCharm下载安装 二 Python下载安装 三 创建项目
  • Unity点击物体后,移动到物体所在位置

    Unity点击物体后 移动到物体所在位置 方法一 OnMouse检测 需要Collider组件 脚本挂在被点击的物体上 using System Collections Generic using UnityEngine using Uni
  • 【Python】字典dict 基础用法

    参考资料 Python字典 Dictionary 操作全解 创建 读取 修改 添加 删除 有序字典 浅复制 排序 字典是 键 值 对的无序可变序列 字典中的每个元素可以分为两部分 键 和 值 定义字典时 每个元素的 键 和 值 用冒号分隔
  • 朴素贝叶斯分类器

    贝叶斯分类器 优点 数据较少任然有效 可以处理多类别的问题 缺点 输入数据准备方式比价敏感 数据类型 标称型数据 朴素贝叶斯决策理论 假设有两类数据 A 和 B 假设有两类数据 A和B 假设有两类数据 A和B 平面直角坐标
  • springboot开发环境生产环境配置文件切换

    一 单个文件切换环境里 在application yml配置文件中添加如下信息 server port 8081 spring profiles active prod 激活prod生产环境 server port 8083 spring
  • “物联网+区块链”技术给农业发展带来新机遇

    运用 物联网 区块链 技术 从鸡苗供应 养殖 再到屠宰 流通等环节 每一只肉鸡的信息数据都被如实记录在 身份证 上 且不可篡改 经区块链加密的多宝鱼生长数据 通过 绿色履历 呈现在消费者面前 从土地承包到播种 加工 稻米的相关信息全部在区块
  • 【机器学习实战】5、Logistic 回归

    文章目录 5 1 基于Logistic回归和Sigmoid函数的分类 5 2 基于最优化方法的最佳回归系数确定 5 2 1 梯度上升法 5 3 python实战 5 3 1 查看数据集分布情况 5 3 2 训练 5 3 3 绘制决策边界 5
  • OpenCV相机标定全过程

    一 OpenCV标定的几个常用函数 findChessboardCorners 棋盘格角点检测 bool findChessboardCorners InputArray image Size patternSize OutputArray