Opencv角点检测

#include "stdafx.h"

#define max_corners 20

int main()
{
    int cornerNum = max_corners;
    vector<Point2f>corner;
    double qualityLevel = 0.05;
    double minDistance = 5;
    double scalar = 0.5;
    Mat srcImg,srcImg1;
    Mat grayImg,grayImg1,grayImg2;
    Mat disImg;
    int i;

    //VideoCapture video("E:\\C_VC_code\\Text_Photo\\feini.flv");
    VideoCapture video(0);
    if(!video.isOpened())
    {
        return -1;
    }
    video>>srcImg;
    resize(srcImg,srcImg1,Size(srcImg.cols*scalar,srcImg.rows*scalar),1,1,3);
    cvtColor(srcImg1,grayImg,CV_BGR2GRAY, 1);
    Rect rect;
    double up,down,left,right;
    while(1)
    {
        video>>srcImg;
        resize(srcImg,srcImg1,Size(srcImg.cols*scalar,srcImg.rows*scalar),1,1,3);
        //disImg = srcImg(Rect(200,150,130,130));
        cvtColor(srcImg1,grayImg1,CV_BGR2GRAY, 1);
        absdiff(grayImg1,grayImg,grayImg2);
        goodFeaturesToTrack(grayImg2,corner,cornerNum,qualityLevel,minDistance,Mat(),3,false,0.04);
        resize(srcImg,srcImg1,Size(srcImg.cols*scalar,srcImg.rows*scalar),1,1,3);
        cvtColor(srcImg1,grayImg,CV_BGR2GRAY, 1);
        up = left = 0x3f3f3f3f;
        down = right = -0x3f3f3f3f;

        for(i=0;i<corner.size();i++)
        {
            up = min(up, corner[i].y*1.0);
            left = min(left, corner[i].x*1.0);
            down = max(down, corner[i].y*1.0);
            right = max(right, corner[i].x*1.0);
            circle(srcImg1,Point(corner[i].x,corner[i].y),2,Scalar(0,255,0),2);
        }
        rect.x = left;
        rect.y = up;
        cout<< right<<" " <<down<<endl;
        rect.width = right-left;
        rect.height = up-down;

        rectangle(srcImg1,rect,Scalar(255,0,0),2);

        imshow("gray",grayImg2);
        imshow("x",srcImg1);

        if(waitKey(33)>0)
            break;
    }
    return 0;
}
时间: 2024-08-24 17:28:58

Opencv角点检测的相关文章

OpenCV角点检测源代码分析(Harris和ShiTomasi角点)

OpenCV中常用的角点检测为Harris角点和ShiTomasi角点. 以OpenCV源代码文件 .\opencv\sources\samples\cpp\tutorial_code\TrackingMotion\cornerDetector_Demo.cpp为例,主要分析其中的这两种角点检测源代码.角点检测数学原理请参考我之前转载的一篇博客 http://www.cnblogs.com/riddick/p/7645904.html,分析的很详细,不再赘述.本文主要分析其源代码: 1. Har

opencv: 角点检测源码分析;

以下6个函数是opencv有关角点检测的函数 ConerHarris, cornoerMinEigenVal,CornorEigenValsAndVecs, preConerDetect, conerSubPix, goodFeaturesToTracks, 其中, 前三个都调用静态函数cornerEigenValsVecs 1.静态函数cornerEigenValsVecs; static void cornerEigenValsVecs( const Mat& src, Mat& ei

OpenCV3入门(十二)角点检测

1.角点介绍 角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测.图像匹配.视频跟踪.三维建模和目标识别等领域中,也称为特征点检测.在图像中角点是一个重要的局部特征,它决定了图像中关键区域的形状,体现了图像中重要的特征信息.目前,角点检测方法主要有2大类: 1)基于图像边缘轮廓特征的方法. 2)基于图像灰度信息的方法.此方法主要通过计算曲率及梯度进行角点检测,通过计算边缘的曲率来判断角点的存在性.典型代表有Harris算法.Susan算法

opencv对图像进行边缘及角点检测

opencv对图像进行边缘及角点检测 先看结果: 代码: // ConsoleApplication1_812.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "opencv2/opencv.hpp" class Imagedetector{ public: Imagedetector():threshold(-1) ,cross(5

OpenCV使用Harris算法实现角点检测

纯粹阅读,请移步OpenCV使用Harris算法实现角点检测 效果图 源码 KqwOpenCVFeaturesDemo 角点是两条边缘的交点或者在局部邻域中有多个显著边缘方向的点.Harris角点检测是一种在角点检测中最常见的技术. Harris角点检测器在图像上使用滑动窗口计算亮度的变化. 封装 这里用到了RxJava.主要是因为图片处理是耗时操作,会阻塞线程,为了防止界面卡顿,这里使用RxJava进行了线程切换. /** * Harris角点检测 * * @param bitmap 要检测的

OpenCV探索之路(十五):角点检测

角点检测是计算机视觉系统中用来获取图像特征的一种方法.我们都常说,这幅图像很有特点,但是一问他到底有哪些特点,或者这幅图有哪些特征可以让你一下子就识别出该物体,你可能就说不出来了.其实说图像的特征,你可以尝试说一下这幅图有几个矩形啊几个圆形啊,有几条直线啊,当然啦,你也可以说一下有几个角点. 什么是角点? 角点通常被定义为两条边的交点.比如,三角形有三个角,矩形有四个角,这些就是角点,也是他们叫做矩形.三角形的特征,我们看到一些几何图形具有三个角,那么我们便可以脱口而出说这是一个三角形. 上面所

OpenCV亚像素级的角点检测

亚像素级的角点检测 目标 在本教程中我们将涉及以下内容: 使用OpenCV函数 cornerSubPix 寻找更精确的角点位置 (不是整数类型的位置,而是更精确的浮点类型位置). 理论 代码 这个教程的代码如下所示.源代码还可以从 这个链接下载得到 #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #inclu

【OpenCV】角点检测:Harris角点及Shi-Tomasi角点检测

角点 特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系.点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做“关键特征点”(keypoint feature),或“兴趣点”(interest point),或“角点”(conrner). 关于角点的具体描述可以有几种: 一阶导数(即灰度的梯度)的局部最大所对应的像素点: 两条及两条以上边缘的交点: 图像中梯度值和梯度方向的变化速率都很高的点: 角点处的一阶导数最大,二阶导数

Opencv学习笔记--Harris角点检测

image算法测试iteratoralgorithmfeatures 原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/7391511 文章目录: 一.Harris角点检测基本理论 二.opencv代码实现 三.改进的Harris角点检测 四.FAST角点检测 五.参考文献 六.附录(资料和源码) 一.Harris角点检测基本理论(要讲清楚东西太多,附录提供文档详细说明) 1.1 简略表达: 角点:最直观的印象就是在水平