У меня есть программа, которая должна сделать сопоставление шаблона на изображении и шаблоне, вот код:
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
Есть идеи, в чем проблема? Заранее спасибо, Мэтт
Вам нужно включить
#include "opencv2/imgproc/imgproc_c.h"
Других решений пока нет …