c++ - 缺少作用域变量 OpenCV c++

标签 c++ opencv template-matching

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

 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"

关于c++ - 缺少作用域变量 OpenCV c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876304/

相关文章:

c++ - 无法使用自定义比较器功能对列表进行排序

opencv - 卸载 winmmbase.dll visual studio 2015

opencv - opencv中的瞳孔检测

opencv - Emgu Cv MatchTemplate可在C#中处理数百万个图像?

c++ - 使用可变数量的 std::thread 的引用问题

c++ - 我在播放 Mix_Chunk 时意外延迟

c++ - 使用 CCNotficationCenter 传递数据

c++ - 在 OpenCV 和 c++ 中使用一组有限的图像进行相机校准

java - Android 上使用 OpenCV 在实时相机预览中进行实时 Logo 检测

Python 与 C++ OpenCV matchTemplate