亚像素级角点检测

角点检测集锦(Harris,Shi-Tomasi,亚像素级角点检测)原理及相关实现 什么是角点? 一个像素所在的区域一般情况下可以分为以下三种情况,平坦,边,角点三种情况,如下图最右边。 在角点处,沿任意方向运动都会引起像素颜色的明显变化等价于:在角点附近,图像梯度具有至少两个主方向。 如何实现角点检测? 角点检测最原始的想法就是取某个像素的一个邻域窗口,当这个窗口在各个方向上进行小范围移动时,观察窗口内平均的像素灰度值的变化。... 阅读详情

亚像素级角点检测

1、概念;
2、API;
3、Code;

亚像素级角点检测

1、若我们进行图像处理的目的不是提取用于识别的特征点而是进行几何测量,这通常需要更高的精度,而函数goodFeatureToTrack()只能提供简单的像素坐标值,即,有时需要实数坐标值而不是整数坐标值;
2、亚像素 级角点检测也即将角点检测的位置精确到亚像素级精度; 在摄像机标定,跟踪并重建摄像机的轨迹,或者重建被跟踪目标的三维结构时,是一个基本的测量值;

API

1、cornerSubPix() : 寻找亚像素角点位置(不是整数类型的位置,而是更精确的浮点数类型的数据)
参数说明:

corner  : 输入Shi-Tomasi找到的角点初始坐标,同时函数计算的精确坐标也将保存在其中
winSize : 搜索窗口尺寸的一半
zeroZone : 死区的大小
TermCriteria : 终止条件; criteria : 标准
//use
TermCriteria criteria = TermCriteria(TermCriteria::EPS + TermCriteria::MAX_ITER, //设置终止条件为迭代次数和精确度
								 40,    //设置迭代次数
								 0.001);  //设置精确度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考 : https://www.cnblogs.com/riddick/p/8476456.html

Code

//亚像素级角点检测
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

Mat srcimg, grayimg, dstimg;

const char* input_win = "input image";

RNG rng(12345);

int corners_value = 30;
int corners_max = 100;

void on_SubPixelTest(int, void*);

int main(int argc, char** argv)
{
	srcimg = imread("C:\\Users\\hello\\Desktop\\4.jpg");
	if (srcimg.empty())
	{
		cout << "could not load the image.." << endl;
		return -1;
	}
	imshow(input_win, srcimg);
	cvtColor(srcimg, grayimg, CV_BGR2GRAY);

	createTrackbar("最大角点数:", input_win, &corners_value, corners_max, on_SubPixelTest);
	on_SubPixelTest(0, 0);

	

	waitKey(0);
	return 0;
}

void on_SubPixelTest(int, void*)
{
	//
	dstimg = srcimg.clone();
	vector<Point2f> corners;
	double quality = 0.01;
	double mindistance = 10;
	goodFeaturesToTrack(grayimg, corners, corners_value, quality, mindistance, Mat(), 3, false, 0.04);

	cout << "> 此次检测到的角点数量为:" << corners.size() << endl;
	//绘制点
	for (int i = 0; i < corners.size(); i++)
	{
		circle(dstimg, corners[i], 5, Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)), -1, 8, 0);
	}
	imshow("亚像素检测", dstimg);
	//亚像素角点检测参数设置
	Size winSize = Size(5, 5); //搜索窗口大小为 11 * 11
	Size zeroZone = Size(-1, -1); //死区尺寸设置

	TermCriteria criteria = TermCriteria(TermCriteria::EPS + TermCriteria::MAX_ITER, 40, 0.001);

	//计算出亚像素角点位置
	cornerSubPix(grayimg, corners, winSize, zeroZone, criteria);
	//输出像素坐标
	for (int i = 0; i < corners.size(); i++)
	{
		cout << "\t>>精确点坐标[" << i << "] (" << corners[i].x << "," << corners[i].y << ")" << endl;
	}

}

效果

坐标值检测更精确:
在这里插入图片描述

【CV/Matlab系列】亚像素级Harris角点检测实现【含Matlab源码】 DATE: 2020.10.17 文章目录1、前言2、亚像素级Harris角点检测 效果图2.1、示例12.2、示例22.3、示例32.4、示例4 1、前言 在大学毕业设计时,实现了一种亚像素级Harris角点检测算法,要求用Harris角点检测算出两个十字中心的像素级距离,然后再算出亚像素级距离 (f是10厘米) 。 2、亚像素级Harris角点检测 效果图 若需要相关代码可以在关注和订阅博主专栏之后,加博主QQ(2963033731)索取。 2.1、示例1 2.2、示例2 2.3、示例3 2. 阅读详情

相关推荐

OpenCV亚像素级角点检测实战指南

在计算机视觉和图像处理中,角点检测是用来定位图像中特征点的技术。传统的角点检测算法,如Harris和Shi-Tomasi算法,通常基于像素级精度来识别这些特征点。也就是说,它们通常将角点的位置确定到一个像素的整数坐标上。然而,在许多高精度要求的应用场景中,比如机器视觉、精确测量和三维重建等领域,需要能够识别出角点在亚像素级别的位置。亚像素级角点检测是对传统像素级角点检测方法的一个重要补充,它允许我们获得比单个像素更精细的角点位置信息。

weixin_36474966的博客 447

OpenCV学习笔记-亚像素级精确度的角点-Python版

在学习亚像素级精确度的角点的过程中,我在书中的代码里遇到了几个想不通的地方,在网上百度也都是C++版本的讲解,通过多番查找,总算是弄明白了一点,特此记录一下,以便日后需要时可以回来看看。同时也希望能对学习Python的小伙伴有帮助。转载请注明出处,原创不易----zyh 2018-6-3一、亚像素级精确度的角点如果我们进行图像处理的目的不是用于识别特征点而是进行几何测量,则通常需要更高的精度,而c...

云中寻雾的博客 7928

飞塔防火墙认证绕过漏洞(CVE-2022-40684)深度剖析与实战复现

本文深度剖析了Fortinet飞塔防火墙高危认证绕过漏洞CVE-2022-40684的原理与影响。该漏洞允许攻击者通过构造包含特定Forwarded头和User-Agent的HTTP请求,无需凭证即可绕过认证,以管理员身份访问设备。文章详细演示了从环境搭建到实战复现,最终植入SSH密钥获取控制权的完整过程,并提供了漏洞挖掘技巧与关键防御建议。

d6e7f8g9h的博客 707

《opencv学习笔记》-- 亚像素角点检测

亚像素角点检测

ccr的博客 1691

ENVI5.6 批量处理GF-2/GF-6/GF-7:从安装到融合的完整自动化流程

本文详细介绍了ENVI5.6环境下批量处理GF-2/GF-6/GF-7卫星数据的完整自动化流程,包括环境配置、工具安装、正射校正、图像融合等关键步骤。通过实战案例和优化技巧,帮助用户高效完成高分卫星影像处理,提升工作效率。特别针对GF-6和GF-7的特殊处理要点进行了深入解析。

weixin_42546392的博客 179

如何在OBS中添加实时时间戳:Lua脚本配置教程(附效果展示)

本文详细介绍了如何在OBS中通过Lua脚本配置实时时间戳功能,包括环境准备、脚本获取、安装配置及高级定制。适用于直播和视频录制场景,提供精准回溯和风格自定义,支持多平台适配和性能优化,是专业制作的必备技巧。

day7的博客 1040

OpenCV亚像素角点检测

前言 我在做围棋盘的的四个角点检测时,试了几种角点检测,用来得到角点检测,试了几种方法,下面的代码就演示下,关于亚像素的角点检测。 代码 //亚像素角点检测 void cornerDetectorPixel(Mat &src, Mat &dst) { Mat src_img, gray; //读取图像 src_img = src.clone(); //把原图像转换成灰度...

知来者逆的博客 972

kettle多表数据迁移

点击 文件——新建——作业,在左侧的 核心对象 标签下选择 通用,双击添加一个 start ,一个 转换 ,一个 作业 和一个 成功 到右侧的作业面板,这些作业项都可以改名字。点击文件—新建—转换,在左侧的 核心对象 标签下选择 输入 下的 表输入,双击添加到右侧的转换面板,再选择 作业 下的 复制记录到结果 ,双击添加到右侧的转换面板。新建转换,在左侧的 核心对象 标签下选择 作业 下的 从结果获取记录,双击添加到右侧的转换面板,再选择 作业 下的 设置变量 ,双击添加到右侧的转换面板。

u014061745的博客 1340

goodFeaturesToTrack函数

1、goodFeaturetoTrack函数 函数作用: 确定图像的强角点 2、goodFeaturetoTrack函数的调用形式 C++: void goodFeaturesToTrack(InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance

qq_18343569的博客 3203

使用ExcelJS向XLSX单元格居中插入图片

本文记录了使用ExcelJS库向XLSX单元格里居中写入图片的方法。本文内容包括:xlsx 文件格式;xlsx 图片定位的长度单位;使用nativeColOff和nativeRowOff进行定位,不要使用官网给的定位方式;添加图片到数据表的总体流程和样例代码;注意事项等。

weixin_43678000的博客 3456

【零基础入门unity游戏开发——unity通用篇14】unity特性相关的知识(基于unity6开发介绍)

unity特性相关的知识(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1203

亚像素级角点检测Opencv-cornerSubPix

亚像素级角点检测

qq_27353621的博客 3991

Python爬虫技术应用:体育赛事直播数据抓取与分析

Web爬虫(Web Crawling)是一种通过模拟浏览器行为从网站获取数据的技术。发送请求:发送HTTP请求(通常是GET或POST请求)获取目标网页的HTML内容。解析网页:使用解析工具(如lxml)从HTML中提取出所需要的信息。存储数据:将抓取到的数据存储到数据库、文件或数据结构中,供后续分析和使用。数据分析与展示:使用数据分析工具(如PandasMatplotlib)对数据进行处理、清洗和可视化,生成有价值的报告和图表。Requests:用于发送静态网页的HTTP请求并获取响应。

2201_76125261的博客 1309

OpenCV——角点检测原理分析(Harris,Shi-Tomasi、亚像素级角点检测)

一、角点(corner)        角点通常被定义为两条边的交点,或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界。角点检测(Corner Detection)是计算机视觉系统中获取图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维重建和目标识别等,也可称为特征点检测。 1、角点的类型              2、角点检测算法的基本思想:          ...

zhu_hongji的博客 4万+

Electron vue3 - 使用SerialPort与串口交互教程,计算机串行端口(COM口、USB转串口等)进行通信连接读取或写入Arduino、单片机、PLC、扫码枪、打印机、老式调制解调器!

实战Electron使用SerialPort与串口交互详细全过程,Electron-vue3与串口交互示例,Electron vue使用serialport实现串口交互通讯,Electron-vue使用serialport连接本地串口,electron-vue 台称串口对接 SerialPort,electron串口调试工具,electron+vue+serialport实现串口通信,串口通信serialport使用和调试,electron-vue使用serialport串口通信及踩过的坑(已解决!)ele

🏆 前端领域优质创作者 4640

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

亚像素级的角点检测(程序)

#include &lt;opencv2\opencv.hpp&gt; #include &lt;opencv2\imgproc\imgproc.hpp&gt; #include &lt;opencv2\highgui\highgui.hpp&gt; using namespace cv; using namespace std; Mat srcImg,grayImg; int corner=30...

nbxuwentao的博客 1221

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

OpenCV中角点检测:Harris、Shi-Tomasi、亚像素级角点检测

1、角点的定义 角点通常被定义为两条边的交点,或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界。比如,三角形有三个角,矩形有四个角,这些就是角点,也是他们叫做矩形、三角形的特征。 角点是个很特殊的存在。如果某一点在任意方向的一个微小的变动都会引起灰度很大的变化,那么我们就可以把该点看做是角点。 角点检测(Corner Detection)是计算机视觉系统中获取图像特征的一种方法,广...

zhw864680355的博客 2693

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OpenCV 亚像素级角点检测

角点检测可能应用于工业检测中,可以作为特征点作为后续处理的条件,也可以做图像分割,比如工件外轮廓由直线、圆弧等连接而成,可以通过角点检测把直线和圆弧分割开等。OpenCV中通过两个函数实现图像的亚像素级角点检测。 1、goodFeaturesToTrack() void goodFeaturesToTrack(InputArray image, OutputArray corners, int m...

zhan_zhan1的博客 517

《OpenCV3编程入门》学习笔记10 角点检测(三)亚像素级角点检测

10.3 亚像素级角点检测 10.3.1 亚像素级角点检测原理 1.原理:   假设起始角点在实际亚像素角点附近,检测所有q-p向量,下面两种情况点p梯度与q-p向量的点积均为0:(1)点p附近图像均匀,即点p处梯度为0(2)边缘的梯度与沿边缘方向的q-p向量正交(向量与其正交向量点积为0),如下图:              则可以在p点周围找到很多组梯度以及相关向量q-p,令其点积为0,求解方...

ccchenxi的博客 1001

Learning OpenCV亚像素级角点检测方法——运动与跟踪基础

如果我们进行图像处理的目的不是提取用于识别的特征点而是进行几何测量,则通常需要更高的精度,而cvGoodFeaturesToTrack()只能提供简单的像素的坐标值,也就是说我们有时候需要实数坐标值而不是整数坐标值,所以要进行亚像素级角点的检测。亚像素检测方法就是一些有关峰值点位置的计算技巧,常见领域:三维重建、摄像机标定、图像拼接以及在卫星图像中查找特定信号,如一栋建筑的精确位置。亚像素级角点的

zhangchunbo135246的专栏 2115

亚像素级Harris角点检测实现(含matlab代码)

肤色建模是计算机视觉中的一个关键任务,广泛应用于人脸识别、手势识别、和视频监控等领域。YCbCr色彩空间因其将亮度信息(Y)与色度信息(Cb和Cr)分离的特性而被广泛用于肤色检测。本文介绍了基于YCbCr空间的肤色建模方法,包括阈值方法和高斯模型,并通过MATLAB实现了一个肤色检测的实例,展示了该方法的应用。

weixin_52452843的博客 499

harris角点 亚像素 matlab,亚像素级的多尺度Harris角点检测算法的制作方法

本发明属于一种图像检测方法,具体为一种针对传统Harris角点的亚像素级别的检测方法。技术背景在机器视觉研究中,角点检测是一个重要环节。在摄像机标定,立体匹配,三维重建等计算机视觉处理任务中起重要作用。角点作为图像的一个重要的直观局部特征,能够有效保证图像的重要信息,同时减少了信息的数据量,运算量。角点检测效果直接影响后期图像处理工作的进行,所以好的检测算法很重要。目前角点检测算法大致分为两类:一...

weixin_33735281的博客 591

harris角点 亚像素 matlab,harris角点检测并精确到亚像素级坐标

【实例简介】harris角点检测并精确到亚像素级坐标,用vs2010和opencv结合编写的程序,能顺利运行【实例截图】【核心代码】gl└── gl├── Debug│ ├── gl.exe│ ├── gl.ilk│ └── gl.pdb├── gl│ ├── Debug│ │ ├── cl.command.1.tlog│ │ ├── CL.read.1.tlog│...

weixin_39652646的博客 243

Opencv3笔记33——亚像素级角点检测

1.概述 \quad 我们处理图像的目的不是提取用于识别的特征点而是进行几何测量,需要更高的精度。函数goodFeaturesToTrack()只能提供简单的像素坐标,但是有的时候实数坐标值。 亚像素级角点检测的位置在摄像机标定,跟踪并重建摄像机的轨迹,或者重建跟踪目标的三维结构时,是一个基本的测量值。 一个向量和与其正交的向量的点积为0. 其中(a)点p附近的图像时均匀的,其梯度为...

绝尘 2006

32运动与跟踪-亚像素级角点检测

32运动与跟踪-亚像素级角点检测 如果我们进行图像处理的目的不是提取用于识别的特征点而是进行几何测量,则通常需要更高的精度,而函数 cvGoodFeaturesToTrack()只能提供简单的像素的坐标值,就是说,我们有时候会需要实数坐标值而不是整数坐标值。 图像测量常用的领域为三维重建、摄像机标定、推向拼接以及在卫星图像中查找特定的信号,如一栋建筑的精确位置。亚像素级角点的位置在摄像机标定、...

剑指天空的博客 448
上一篇: Shi-Tomasi角点检测算法
下一篇: 05-图像视频相关操作
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值