CAP_PROP_FRAME_WIDTH undeclared in 'How to build applications with OpenCV inside the Microsoft Visual Studio' sample code

asked 2013-10-09 11:44:23 -0600

dumbledad gravatar image

updated 2013-10-10 04:16:55 -0600

berak gravatar image

I'm following the instructions in How to build applications with OpenCV inside the Microsoft Visual Studio but I'm getting errors from the sample code:

  • error C2065: 'CAP_PROP_FRAME_WIDTH' : undeclared identifier
  • error C2065: 'CAP_PROP_FRAME_HEIGHT' : undeclared identifier
  • error C2065: 'CAP_PROP_FRAME_COUNT' : undeclared identifier

I think the identifiers that are undeclared should (are) declared in highgui so why am I not getting them despite the demo code's #include <opencv2/highgui/highgui.hpp>?

Here are the steps I have taken.

  1. I've unpacked the OpenCV (Version 2.4.6) files into C:\OpenCV, run setx -m OPENCV_DIR C:\OpenCV\Build\x64\vc11 from an elevated command prompt and added %OPENCV_DIR%\bin to my path (following instructions in Installation in Windows). Then using the Property pages (View -> Property Pages or Shift-F4) set to 'All Configurations'

  2. I've added $(OPENCV_DIR)\..\..\include to my C/C++ Additional Include Directories

VS12 Property Page Screenshot

  1. I've added $(OPENCV_DIR)\lib to the linker Additional Library Directories

VS12 Property Page Screenshot

  1. I've cut-an-paste the directory listing of the lib files in C:\OpenCV\build\x64\vc11\lib into my input Additional Dependencies

VS12 Property Page Screenshot

  1. I've copied the sample code from the article into a new C++ console app (with ATL). I had to change one line in the template code from int _tmain(int argc, _TCHAR* argv[]) to int _tmain(int argc, char* argv[])

I think the identifiers that are undeclared should (are) declared in highgui so why am I not getting them despite the demo code's #include <opencv2/highgui/highgui.hpp>?

edit retag flag offensive close merge delete

Comments

I have also asked this on stackoverflow, I hope that's not poor etiquette http://stackoverflow.com/q/19278012/575530

dumbledad gravatar imagedumbledad ( 2013-10-09 11:51:07 -0600 )edit

Maybe explicitly including the old c header will help, since the enums are actually in there:

include "opencv2/highgui/highgui_c.h"

Moster gravatar imageMoster ( 2013-10-09 13:57:30 -0600 )edit
2

looks like there was some mixup (in the tutorial) with the constants in master, use :

  • CV_CAP_PROP_* in 2.4.6, and
  • cv::CAP_PROP_* in 3.0
berak gravatar imageberak ( 2013-10-10 04:16:00 -0600 )edit

Moster, that didn't work. But berak, that works. If you want to add it as an answer I'll mark it as such.

dumbledad gravatar imagedumbledad ( 2013-10-10 05:12:03 -0600 )edit
berak gravatar imageberak ( 2013-10-10 06:08:10 -0600 )edit