与Windows窗体应用程序一起使用时出现opencv错误

时间:2013-10-16 10:09:04

标签: c++ visual-studio opencv

我在visual studio 2010 windows form application c ++中使用opencv。但它不会允许调用内置函数。它会出现像

这样的错误

错误1错误C3861:'cvCvtColor':找不到标识符c:\ users \ ayesha \ documents \ visual studio 2010 \ projects \ abc \ abc \ Form1.h 140 1 abc

错误2错误C3861:'cvCvtPixToPlane':找不到标识符c:\ users \ ayesha \ documents \ visual studio 2010 \ projects \ abc \ abc \ Form1.h 146 1 abc

我添加了以下标题

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

任何人都可以告诉我我做错了什么。

3 个答案:

答案 0 :(得分:3)

不幸的是,OP并没有说出他使用的OpenCV版本。

使用OpenCV 3.0时,请使用cvSplit()代替cvCvtPixToPlane()

cvCvtColor()适用于OpenCV 3.0,只要您向项目添加了必需的头文件。

最后,为了确保您不会错过项目中的所有必需文件,只需使用#include <opencv2\opencv.hpp>启动您的代码。

答案 1 :(得分:0)

cvCvtColor是OpenCV的C API函数,但您打算使用C ++函数。您有两种方法可以解决问题:

1)(推荐)更改源代码以使用C ++ API。您应该使用cv::Mat代替CvArrcv::cvtColor代替cvCvtColor等。

2)由于源代码中的这些更改非常复杂,您仍然可以通过包含C-header来使用C API

#include "opencv2/imgproc/imgproc_c.h" 
#include "opencv2/core/core_c.h"      
#include "opencv2/highgui/highgui_c.h"

而不是C ++(* .hpp)

答案 2 :(得分:0)

您提到的错误是我想的链接器错误。 因为你要包含两个标题highgui.hpp和highgui.h,目标是一个相同的opencv_highgui23#库。 只包括一个标题。