zoukankan      html  css  js  c++  java
  • opencv template matching

    #include<stdio.h>
    #include"cv.h"
    #include"highgui.h"

    int main(int argc,char** argv)
    {
     
    IplImage  *img;
     
    IplImage  *tpl;
     
    IplImage  *res;
     
    CvPoint   minloc, maxloc;
     
    double    minval, maxval;

     
    /* check for arguments */
     
    if(argc <3){
        fprintf
    (stderr,"Usage: template_match <reference> <template>\n");
       
    return1;
     
    }

     
    /* load reference image */
      img
    = cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR);

     
    /* always check */
     
    if(img ==0){
        printf
    ("Cannot load file %s!\n", argv[1]);
       
    return1;
     
    }

     
    /* load template image */
      tpl
    = cvLoadImage(argv[2], CV_LOAD_IMAGE_COLOR);

     
    /* always check */
     
    if(tpl ==0){
        printf
    ("Cannot load file %s!\n", argv[2]);
       
    return1;
     
    }

     
    CvSize size = cvSize(
        img
    ->width  - tpl->width  +1,
        img
    ->height - tpl->height +1
     
    );

     
    /* create new image for template matching computation */
      res
    = cvCreateImage(size, IPL_DEPTH_32F,1);

     
    /* choose template matching method to be used */
      cvMatchTemplate
    (img, tpl, res, CV_TM_SQDIFF);
     
    /*cvMatchTemplate(img, tpl, res, CV_TM_SQDIFF_NORMED);
      cvMatchTemplate(img, tpl, res, CV_TM_CCORR);
      cvMatchTemplate(img, tpl, res, CV_TM_CCORR_NORMED);
      cvMatchTemplate(img, tpl, res, CV_TM_CCOEFF);
      cvMatchTemplate(img, tpl, res, CV_TM_CCOEFF_NORMED);*/


      cvMinMaxLoc
    (res,&minval,&maxval,&minloc,&maxloc,0);

     
    /* draw red rectangle */
      cvRectangle
    (img,
             cvPoint
    (minloc.x, minloc.y),
             cvPoint
    (minloc.x + tpl->width, minloc.y + tpl->height),
             CV_RGB
    (255,0,0),1,0,0);  

     
    /* display images */
      cvNamedWindow
    ("reference", CV_WINDOW_AUTOSIZE);
      cvNamedWindow
    ("template", CV_WINDOW_AUTOSIZE);
      cvShowImage
    ("reference", img);
      cvShowImage
    ("template", tpl);

     
    /* wait until user press a key to exit */
      cvWaitKey
    (0);

     
    /* free memory */
      cvDestroyWindow
    ("reference");
      cvDestroyWindow
    ("template");
      cvReleaseImage
    (&img);
      cvReleaseImage
    (&tpl);
      cvReleaseImage
    (&res);

     
    return0;
    }
  • 相关阅读:
    第一课:人人站安装与使用教程
    linux 多个python版本的切换
    参考文章
    windows下scrapy 的安装
    vi 使用入门
    linux 源码安装
    C语言—第二次作业
    C语言第0次作业
    c语言博客园作业03函数
    tomcat对于web.xml的securityconstraint使用的处理机制
  • 原文地址:https://www.cnblogs.com/lavieenrose/p/2390735.html
Copyright © 2011-2022 走看看