OpenCv学习笔记(八):角点检测
来源:互联网 发布:淘宝商品会下架吗 编辑:程序博客网 时间:2024/05/22 05:11
角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。角点对于图像当中目标的跟踪,图像检索,图像匹配都有着至关重要的指导作用。下面一小段代码是用到触点检测的主要用到opencv当中的goodFeaturesToTrack函数
#include "stdafx.h"
/**
* @function goodFeaturesToTrack_Demo.cpp
* @brief Demo code for detecting corners using Shi-Tomasi method
* @author OpenCV team
*/
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace cv;
using namespace std;
/// Global variables
Mat src, src_gray;
int maxCorners = 23;
int maxTrackbar = 100;
RNG rng(12345);
char* source_window = "Image";
/// Function header
void goodFeaturesToTrack_Demo( int, void* );
/**
* @function main
*/
int main( int argc, char** argv )
{
/// Load source image and convert it to gray
src = imread( "d:\\2.jpg", 1 );
cvtColor( src, src_gray, CV_BGR2GRAY );
/// Create Window
namedWindow( source_window, CV_WINDOW_AUTOSIZE );
/// Create Trackbar to set the number of corners
createTrackbar( "Max corners:", source_window, &maxCorners, maxTrackbar, goodFeaturesToTrack_Demo );
imshow( source_window, src );
goodFeaturesToTrack_Demo( 0, 0 );
waitKey(0);
return(0);
}
/**
* @function goodFeaturesToTrack_Demo.cpp
* @brief Apply Shi-Tomasi corner detector
*/
void goodFeaturesToTrack_Demo( int, void* )
{
if( maxCorners < 1 ) { maxCorners = 1; }
/// Parameters for Shi-Tomasi algorithm
vector<Point2f> corners;
double qualityLevel = 0.01;
double minDistance = 10;
int blockSize = 3;
bool useHarrisDetector = false;
double k = 0.04;
/// Copy the source image
Mat copy;
copy = src.clone();
/// Apply corner detection
goodFeaturesToTrack( src_gray,
corners,
maxCorners,
qualityLevel,
minDistance,
Mat(),
blockSize,
useHarrisDetector,
k );
/// Draw corners detected
cout<<"** Number of corners detected: "<<corners.size()<<endl;
int r = 4;
for( int i = 0; i < corners.size(); i++ )
{ circle( copy, corners[i], r, Scalar(rng.uniform(0,255), rng.uniform(0,255), rng.uniform(0,255)), -1, 8, 0 ); }
/// Show what you got
namedWindow( source_window, CV_WINDOW_AUTOSIZE );
imshow( source_window, copy );
}
- OpenCv学习笔记(八):角点检测
- Opencv学习笔记------Harris角点检测
- OpenCV学习笔记__角点检测
- Opencv学习笔记------Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- Opencv学习笔记(五)Harris角点检测
- OpenCV学习笔记(十六)角点检测
- OpenCV学习笔记——harris角点检测
- opencv学习笔记(6)----图像角点检测
- 【OpenCV学习笔记】三十五、角点检测简介
- 我的OpenCV学习笔记(17):利用形态学学滤波检测边沿和角点
- OpenCV学习笔记(14):形态学滤波对图像进行边缘及角点检测
- OpenCV学习——角点检测
- MongoDB管理与开发精要《红丸出品》21.4.2 管理维护Replica Sets之故障转移
- javascript入门
- ImageView属性相关
- MongoDB管理与开发精要《红丸出品》21.4.3 管理维护Replica Sets之增减节点
- 编程世界里的爱情
- OpenCv学习笔记(八):角点检测
- Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型
- 获得系统中所有的安装包信息
- 新浪微博API学习使用笔记(1)
- MongoDB管理与开发精要《红丸出品》22.1~22.5 Sharding分片之部署
- 关于编程的胡扯
- 新浪微博API学习使用笔记(2)
- Ubuntu 用apt安装oracle-xe
- MongoDB管理与开发精要《红丸出品》22.6 Sharding分片之管理维护