0

我有一个程序应该对图像和模板进行模板匹配,这是代码:

 int main()
{
   IplImage* imgOriginal = cvLoadImage("image.jpg", 0);
   IplImage* imgTemplate = cvLoadImage("template.jpg", 0);
   IplImage* imgResult = cvCreateImage(cvSize(imgOriginal->width-imgTemplate->width+1, imgOriginal->height-imgTemplate->height+1), IPL_DEPTH_32F, 1);
   cvZero(imgResult);
   cvMatchTemplate(imgOriginal, imgTemplate, imgResult, CV_TM_CCORR_NORMED);
   double min_val=0, max_val=0;
   CvPoint min_loc, max_loc;
   cvMinMaxLoc(imgResult, &min_val, &max_val, &min_loc, &max_loc);
   cvRectangle(imgOriginal, max_loc, cvPoint(max_loc.x+imgTemplate->width, max_loc.y+imgTemplate->height), cvScalar(0), 1);
   printf("%f", max_val);
   cvNamedWindow("result");
       cvShowImage("result", imgOriginal);
       cvWaitKey(0);
       return 0;
}

包含文件:

    #include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

#include <iostream>
#include "stdio.h"

using namespace cv;
using namespace std;

当我运行代码时,我收到此错误:

templateMatching.cpp:16:75: error: ‘cvMatchTemplate’ was not declared in this scope

知道问题是什么吗?在此先感谢,马特

4

1 回答 1

7

你需要包括

#include "opencv2/imgproc/imgproc_c.h"
于 2012-10-13T20:14:09.227 回答