【OpenCV3经典编程100例】(26)2D特征:Shi-Tomasi角点检测goodFeaturesToTrack()函数
二、opencv函数原型和参数解析
void goodFeaturesToTrack(InputArray image,//输入图像,必须是单通道OutputArray corners,//检测到的角点、输出向量int maxCorners,//角点的最大数量double qualityLevel,//最小特征值,常用0.1或0.01double minDistance,//角点之间的最小距离InputArray mask = noArray(),//掩模,表示感兴趣区域int blockSize = 3,//邻域范围,计算二阶导数的自相关矩阵bool useHarrisDetector = false, double k = 0.04);//默认值
三、c++示例代码
//包含头文件
#include <opencv2/opencv.hpp>
//命名空间
using namespace cv;
using namespace std;
//全局变量声明
Mat g_srcImage, g_grayImage;
int g_maxCorners = 200;//滑动条当前位置
int g_max_trackbar = 500;//滑动条取值范围【0,500】
//全局函数声明部分
void callback_ShiTomasi(int, void*);//回调函数
//主函数
int main()
{//【1】载入图像g_srcImage = imread("G:\\opencvtest\\testImage\\house.jpg");//【2】检查是否载入成功if (g_srcImage.empty()){printf("读取图片错误,请确认目录下是否有imread函数指定图片存在! \n ");return 0;}//【3】图像灰度化cvtColor(g_srcImage, g_grayImage, COLOR_BGR2GRAY);//【4】创建窗口和滑动条namedWindow("Shi-Tomasi角点检测", WINDOW_AUTOSIZE);createTrackbar("角点最大数量:", "Shi-Tomasi角点检测", &g_maxCorners, g_max_trackbar, callback_ShiTomasi);//【5】调用一次回调函数,进行初始化callback_ShiTomasi(0, 0);//【6】保持窗口显示waitKey(0);return 0;
}void callback_ShiTomasi(int, void*)
{//【1】复制源图像到一个临时变量中Mat g_CloneImage = g_srcImage.clone();//【2】Shi-Tomasi角点检测g_maxCorners = max(g_maxCorners, 1);vector<Point2f> corners;goodFeaturesToTrack(g_grayImage, corners, g_maxCorners, 0.01, 10);//【3】绘制检测到的角点for (size_t i = 0; i < corners.size(); i++){circle(g_CloneImage, corners[i], 4, Scalar(0, 0, 255));}//【4】显示图像imshow("Shi-Tomasi角点检测", g_CloneImage);
}
三、运行截图
1.
2.
【OpenCV3经典编程100例】(26)2D特征:Shi-Tomasi角点检测goodFeaturesToTrack()函数相关推荐
- Mr.J--C语言经典编程100例
C语言,一般为初学者的首选语言,说简单也简单,但是要真正学好C语言,也是一件很难的事,懂了这些100个例题,也就算是入门了吧,毕竟语言要学的太多,这只是基础. [程序1] 题目:古典问题:有一对兔子, ...
- python编程300例_经典编程100例——python版(例75)
例75:一个自然数, 若它的质因数至少是两重的(相同的质因数至少个数为二个, 如36=2*2*3*3)则称该数为"漂亮数". 若相邻两个自然数都是"漂亮数", ...
- python编程300例_经典编程100例——python版(例9例10)
最近事情比较多,python还在学习之中,更新速度慢了一些.今天就2例. 例9:一个数如果恰好等于它的因子之和,这个数就称为"完数".如6=1+2+3.编程找出1000之内所有的完 ...
- python小游戏编程100例_经典编程100例——python版(例9例10)
最近事情比较多,python还在学习之中,更新速度慢了一些.今天就2例. 例9:一个数如果恰好等于它的因子之和,这个数就称为"完数".如6=1+2+3.编程找出1000之内所有的完 ...
- Python3算法基础练习:编程100例( 26 ~ 30)
上期文章: Python3算法基础练习:编程100例( 21~ 25) 目录 26 递归求 20! 的阶乘 27 字符串反转 28 猜岁数 29 整数打印每一位数字 30 回文数 26 递归求 20! ...
- 趣味c语言编程100例(一)
Technorati 标签: 趣味,c语言,编程,100例 经典c程序100例==1--10 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分 ...
- Python3算法基础练习:编程100例( 31 ~ 35 )
上期文章: Python3算法基础练习:编程100例( 26 ~ 30) 目录 31 判断星期几 32 反序输出列表 33 分隔列表 34 函数调用 35 文本加颜色 31 判断星期几 题目:请输入星 ...
- c语言经典算法大全pdf,c语言经典算法100例pdf版.pdf
c语言经典算法100例pdf版 C 语言经典算法 100 例 C 语言编程经典 100 例 A:[程序1] 题目:有1.2.3.4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程 ...
- 新颖的c语言题目,新颖版c语言经典习题100例(全面面)
新颖版c语言经典习题100例(全面面) (66页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实用文档C语言习题100例(最新整理版) ...
最新文章
- JavaScript学习笔记(三)——数组
- android中getLocationInWindow 和 getLocationOnScreen的区别
- 23种基本设计模式简介
- md文件生成Java代码_Beetlsql自定义生成entity,mapper,md代码
- fxml设置背景_JavaFX – 如何获取Tab,Button等的背景颜色
- 和后台如何对接_业务系统如何对接第三方服务?
- linux+redhat+5下载地址,Redhat_Linux5下载地址集锦最终.docx
- Django之Model组件
- P3924 康娜的线段树
- Enterprise Library 4.1 Security Block 快速使用图文笔记
- Algorithm——A*路径规划算法原理详解
- 一个字节等于多少位?
- 通达OA任意用户登录漏洞手工复现
- 一分钟入门typescript
- 游吟诗人之中二病犯了
- dp hdu5653 xiaoxin and his watermelon candy
- 【云原生系列】云原生下的网络安全如何防御?
- enumerate() 函数的解释
- BNUZ自动打卡系统
- vue2实现高德地图 JSAPI 2.0可拖拽的路线规划(DragRoute)组件实现对每个经过点设置不同的经过点名称
热门文章
- 计算机二级C语言操作题怎么做?注意事项(难点易错点总结笔记)
- 反恐精英代码_CS:GO和军团要塞2源代码泄漏,Valve:稳住
- html中绘制渐变伞,CorelDRAW X8快速制作雨伞教程
- 马士兵python_马士兵老师的python入门教程
- 关于Vue开发即时聊天类功能的经验分享(其实并不复杂)
- python高级语言怎么学习_Python作为近几年大热的语言,要如何学习呢?
- 蓝桥杯培训试题新解——计算两个日期之间的天数间隔
- react 搭建本地开发环境
- 英雄联盟(LOL)外挂原理(仅供学术交流)
- Russia Proposes First Multinational Cryptocurrency