zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    UIView的常见属性
    Object-C-Foundation-反射
    Object-C-自定义类型归档
    Java集合:HashMap源码剖析
    spring-boot-2.0.3之quartz集成,数据源问题,源码探究
    杂谈篇之我是怎么读源码的,授之以渔
    ElasticSearch 从零到入门
    java实现图片上传功能,并返回图片保存路径
    quartz定时任务及时间设置
    笛子初学者吹什么曲子
  • 原文地址:https://www.cnblogs.com/mypsq/p/5003593.html
Copyright © 2011-2022 走看看