zoukankan      html  css  js  c++  java
  • 实验9

    #include "opencv2/imgcodecs.hpp"
    #include "opencv2/highgui.hpp"
    #include "opencv2/imgproc.hpp"
    #include <iostream>
    using namespace std;
    using namespace cv;
    bool use_mask;
    Mat img; Mat templ; Mat mask; Mat result;
    const char* image_window = "Source Image";
    const char* result_window = "Result window";
    int match_method;
    int max_Trackbar = 5;
    void MatchingMethod( int, void* );
    int main()
    {
      img = imread( "/Users/war/Downloads/nk.jpg", IMREAD_COLOR );
      templ = imread( "/Users/war/Downloads/nk_eye.png", IMREAD_COLOR );
        
      if(img.empty() || templ.empty() || (use_mask && mask.empty()))
      {
        cout << "Can't read one of the images" << endl;
        return EXIT_FAILURE;
      }
      namedWindow( image_window, WINDOW_AUTOSIZE );
      namedWindow( result_window, WINDOW_AUTOSIZE );
      const char* trackbar_label = "Method: 
     0: SQDIFF 
     1: SQDIFF NORMED 
     2: TM CCORR 
     3: TM CCORR NORMED 
     4: TM COEFF 
     5: TM COEFF NORMED";
      createTrackbar( trackbar_label, image_window, &match_method, max_Trackbar, MatchingMethod );
      MatchingMethod( 0, 0 );
      waitKey(0);
      return EXIT_SUCCESS;
    }
    void MatchingMethod( int, void* )
    {
      Mat img_display;
      img.copyTo( img_display );
      int result_cols =  img.cols - templ.cols + 1;
      int result_rows = img.rows - templ.rows + 1;
      result.create( result_rows, result_cols, CV_32FC1 );
      bool method_accepts_mask = (TM_SQDIFF == match_method || match_method == TM_CCORR_NORMED);
      if (use_mask && method_accepts_mask)
        { matchTemplate( img, templ, result, match_method, mask); }
      else
        { matchTemplate( img, templ, result, match_method); }
      normalize( result, result, 0, 1, NORM_MINMAX, -1, Mat() );
      double minVal; double maxVal; Point minLoc; Point maxLoc;
      Point matchLoc;
      minMaxLoc( result, &minVal, &maxVal, &minLoc, &maxLoc, Mat() );
      if( match_method  == TM_SQDIFF || match_method == TM_SQDIFF_NORMED )
        { matchLoc = minLoc; }
      else
        { matchLoc = maxLoc; }
      rectangle( img_display, matchLoc, Point( matchLoc.x + templ.cols , matchLoc.y + templ.rows ), Scalar::all(0), 2, 8, 0 );
      rectangle( result, matchLoc, Point( matchLoc.x + templ.cols , matchLoc.y + templ.rows ), Scalar::all(0), 2, 8, 0 );
      imshow( image_window, img_display );
      imshow( result_window, result );
      return;
    }

  • 相关阅读:
    包含中文的js文件在从cdn搞到本地时造成的问题;
    查询杀死进程
    二维码显示在网页上
    二维码生成器和解析器-java
    N个任务,分配给M个人,那么每个人得到的任务数量----总结经验
    js中文转换成拼音
    Grails连接mysql数据库
    Grails框架+Intellij IDEA工具,写了一个对字符串进行转码,包括纯js转成Base64格式
    java冒泡排序
    对文字简单的加密解密
  • 原文地址:https://www.cnblogs.com/war1111/p/13953225.html
Copyright © 2011-2022 走看看