USING OPENCV 2.4.2 WITH VISUAL STUDIO 2012 ON WINDOWS 7 (64-BIT)

转自 http://karanjthakkar.wordpress.com/2012/11/21/usin-opencv-2-4-2-with-visual-studio-2012-on-windows-7-64-bit/

作者KARAN THAKKAR


So before starting you’ll need to make sure you have these in your computer:

  1. Visual Studio 2012 (You can download the 90-day trial version from here)
  2. OpenCV 2.4.2 (You can download it from here)

Extract OpenCV in a folder named OpenCV-2.4.2 in C drive. [Note: You can change the path and folder name but then you wont be able to use the instructions as they are and you'll have to make modifications]

There are five simple steps that we have to make sure that we follow to get OpenCV up and running smoothly: (Click on the images to enlarge them)

STEP-1

Add the path to OpenCV runtime dll’s (Dynamic Linked Libraries) to your Environment Path variable:

[For 64-bit Machines]   C:\OpenCV-2.4.2\opencv\build\x64\vc10\bin;C:\OpenCV-2.4.2\opencv\build\common\tbb\intel64\vc10; 
[For 32-bit Machines]   C:\OpenCV-2.4.2\opencv\build\x86\vc10\bin;C:\OpenCV-2.4.2\opencv\build\common\tbb\ia32\vc10;    

The first path[C:\OpenCV-2.4.2\opencv\build\x64\vc10\bin] is for OpenCV runtime dll’s and the second path[C:\OpenCV-2.4.2\opencv\build\common\tbb\intel64\vc10] adds Intel Threaded Building Blocks to enable parallel code in OpenCV. Adding Intel TBB dll’s is OPTIONAL. Without it you won’t be able to use multiple cores unless you multithreaded your own application.

STEP-2

Create a new Visual Studio Project. Open Visual Studio -> New Project -> Visual C++ -> Win32 Console Application. Click OK. Then click Next -> Finish. 

STEP-3

[This step is for people with 64-bit machines. People with 32-bit machines can skip it.] Now change the build configuration by going to Build menu -> Configuration Manager.

Change the Platform. Click on Win32, Select New. Use the settings as shown in the figure.

Step 3

Step 3

Click OK. Close the Configuration Manager. Change the configuration in the main window to Release, if it isnt that already.

STEP-4

Now we add the OpenCV libraries to our OpenCV project properties. Go to View -> Other Windows -> Property Manager. Then open the Release | x64 (32-bit users should open Release | Win32) Property page by double clicking on it:

Step-4

Go to Linker -> General -> Additional Library Directories. Add this path over there:

[For 64-bit Machines]   C:\OpenCV-2.4.2\opencv\build\x64\vc10\lib;   

[For 32-bit Machines]   C:\OpenCV-2.4.2\opencv\build\x86\vc10\lib;

Next, go to Linker -> Input -> Additional Dependencies. 

Step-4i

Add the following dependencies to it:

opencv_core242.lib
opencv_imgproc242.lib
opencv_highgui242.lib
opencv_ml242.lib
opencv_video242.lib
opencv_features2d242.lib
opencv_calib3d242.lib
opencv_objdetect242.lib
opencv_contrib242.lib
opencv_legacy242.lib
opencv_flann242.lib

STEP-5

Now we add the OpenCV include directories to our OpenCV project properties. In the same Property page, go to C/C++ -> General -> Additional Include Directories and add the following path:

[For both 32-bit and 64-bit Machines]   C:\OpenCV-2.4.2\opencv\build\include\opencv;C:\OpenCV-2.4.2\opencv\build\include;

[Optional: Go to C/C++ -> Preprocessor -> Preprocessor Definitions and add this:_CRT_SECURE_NO_WARNINGS; Helps avoid unnecessary warnings sometimes]

OKAY! So now we are done with the adjustments. Go ahead and try this simple code which displays the video stream from your webcam.

01 #include "stdafx.h"
02 #include "opencv2/highgui/highgui.hpp"
03  
04 /**
05 * @function main
06 */
07 int main( int argc, const char** argv )
08 {
09 CvCapture* capture;
10 IplImage* frame = 0;
11  
12 while (true)
13 {
14 //Read the video stream
15 capture = cvCaptureFromCAM(1);
16 frame = cvQueryFrame( capture );
17  
18 // create a window to display detected faces
19 cvNamedWindow("Sample Program", CV_WINDOW_AUTOSIZE);
20  
21 // display face detections
22 cvShowImage("Sample Program", frame);
23  
24 int c = cvWaitKey(10);
25 if( (char)c == 27 ) { exit(0); }
26  
27 }
28  
29 // clean up and release resources
30 cvReleaseImage(&frame);
31  
32 return 0;
33  
34 }

Once you get this basic sample up and running, you can try out other Visual Studio projects like face-detection and face-extraction I’ve put up on github.

Post your feedback or any problems that you encounter in comments.

Some blog posts that helped me figure stuff out:

1. http://jepsonsblog.blogspot.in/2012/07/installation-guide-opencv-24-with.html

2. http://siddhantahuja.wordpress.com/2011/07/18/getting-started-with-opencv-2-3-in-microsoft-visual-studio-2010-in-windows-7-64-bit/


已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 QueueForMcu 基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台。 开源代码:https://.com/xiaoxinpro/QueueForMcu 一、特性 动态创建队列对象 动态设置队列数据缓冲区 静态指定队列元素数据长度 采用值传递的方式保存队列数据 二、快速使用 三、配置说明 目前QueueForMcu只有一个静态配置项,具体如下: 在文件 中有一个宏定义 用于指定队列元素的数据长度,默认是 ,可以根据需要更改为其他数据类型。 四、数据结构 队列的数据结构为 用于保存队列的状态,源码如下: 其中 为配置项中自定义的数据类型。 五、创建队列 1、创建队列缓存 由于我们采用值传递的方式保存队列数据,因此我们在创建队列前要手动创建一个队列缓存区,用于存放队列数据。 以上代码即创建一个大小为 的队列缓存区。 2、创建队列结构 接下来使用 创建队列结构,用于保存队列的状态: 3、初始化队列 准备好队列缓存和队列结构后调用 函数来创建队列,该函数原型如下: 参数说明: 参考代码: 六、压入队列 1、单数据压入 将数据压入队列尾部使用 函数,该函数原型如下: 参数说明: 返回值说明: 该函数会返回一个 枚举数据类型,返回值会根据队列状态返回以下几个值: 参考代码: 2、多数据压入 若需要将多个数据(数组)压入队列可以使用 函数,原理上循环调用 函数来实现的,函数原型如下: 参数说明: 当数组长度大于队列剩余长度时,数组多余的数据将被忽略。 返回值说明: 该函数将返回实际被压入到队列中的数据长度。 当队列中的剩余长度富余...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值