user2740528
user2740528

Reputation: 35

opencv errors while using with windows form applications

I am using opencv with visual studio 2010 windows form application c++. but it wont allow calling inbuilt functions. It gives errors like

Error 1 error C3861: 'cvCvtColor': identifier not found c:\users\ayesha\documents\visual studio 2010\projects\abc\abc\Form1.h 140 1 abc

Error 2 error C3861: 'cvCvtPixToPlane': identifier not found c:\users\ayesha\documents\visual studio 2010\projects\abc\abc\Form1.h 146 1 abc

I have added the following headers

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

Can anyone please tell me what i am doing wrong.

Upvotes: 0

Views: 3210

Answers (3)

tags
tags

Reputation: 4059

Unfortunately, OP doesn't say what version of OpenCV he uses.

While working with OpenCV 3.0, use cvSplit() instead of cvCvtPixToPlane().

cvCvtColor() shall work with OpenCV 3.0, provided you added the required header files to your projects.

Finally, to make sure you don't miss any required files in your project, just start your code with #include <opencv2\opencv.hpp>.

Upvotes: 3

Parth Parikh
Parth Parikh

Reputation: 166

The error you've mentioned it is a linker error I suppose. As you're including two headers highgui.hpp and highgui.h targeting to an identical library which is opencv_highgui23#. Just include only one header.

Upvotes: 0

Sergei Nosov
Sergei Nosov

Reputation: 1675

cvCvtColor is a C API function of OpenCV, but you're intending to use the C++ one. You have 2 ways of fixing the problem:

1) (Recommended) Change your source code to use the C++ API. You should use cv::Mat instead of CvArr, cv::cvtColor instead of cvCvtColor, etc.

2) Since such changes in the source code can be pretty involved, you can still use the C API by including C-headers

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

instead of the C++ (*.hpp) ones

Upvotes: 0

Related Questions