【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持

  步骤:

  1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.willowgarage.com/wiki/InstallGuide

  2.在“2) Install Prerequisite Libraries and Tools”中提到了如果想支持Python调用需要Python 2.6或者 2.7版本,而且还需要NumPy和SciPy库。升级Python至2.7的方法请参考“Windows下升级Python 2.5到Python 2.7”一文。NumPy和SciPy的下载地址:http://www.scipy.org/Download,安装指导:http://www.scipy.org/Installing_SciPy/Windows。对于已经安装好了Python的用户来说,直接下载对应Python版本的二进制安装包安装即可。

  3.如果需要Intel TBB支持的话,去Intel TBB主页下载TBB(注意选择Windows版本的)。下载完之后解压到某个目录下(不需要安装,假设路径为D盘根目录),然后将头文件路径:D:\tbb40_233oss\include,Lib文件路径:D:\tbb40_233oss\lib\ia32\vc9和Bin文件路径:D:\tbb40_233oss\bin\ia32\vc9添加到系统环境变量中去。(注意自己对应的平台和版本,64位的请选择intel64,VS2005->VC8,VS2010->VC10)

  4.打开CMake GUI(我使用的版本是CMake2.8),Where is the source code 和 Where to build binaries填写如下图:

然后点击Configure按钮,选择VS2008 VC9编译器,CMake会产生一个基本的配置,不会为你勾选上WITH_TBB,所以你要自己在中间的列表窗口咋红找到WITH_TBB选项,然后勾选上。如果你还想要生成一些其他项目的配置文件,比如OpenCV提供的例子,那么你也需要自己勾选上相应的选项。最后点击Generate按钮,就会为你产生VS2008对应的项目文件。如果一切顺利,下面文本框中的输出如下:

General configuration for opencv 2.1.0 =====================================
Built as dynamic libs?: ON
Compiler:
C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /Zm1000 /EHsc- /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /MD /O2 /Ob2 /D NDEBUG /Zi
C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /Zm1000 /EHsc- /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
Linker flags (Release): /STACK:10000000 /machine:X86 /INCREMENTAL:NO /debug
Linker flags (Debug): /STACK:10000000 /machine:X86 /debug /INCREMENTAL:YES
Image I/O:
JPEG: build
PNG: build
TIFF: build
JPEG 2000: build
Interfaces:
Old Python: 0
Python: ON
Python interpreter: D:/Python27/python.exe
Python numpy: 1
Use IPP: NO
Use TBB: YES
Build Documentation 0
Install path: D:/OpenCV2.1
cvconfig.h is in: D:/OpenCV2.1
-----------------------------------------------------------------
Configuring done

  注意,如果以前使用过CMake编译过OpenCV,请先点击File菜单下的Delete Cache ,删除缓存文件,以免配置得不到更新。我在安装过程中就遇到了明明已经修改了Python的路径为2.7的路径,但是Configure产生的结果还是指向了原有Python2.5的路径的问题。

  5.打开VS2008,然后打开刚才生成的OpenCV.sln解决方案文件(在Where to build binaries路径下),分别生成Debug和Release版本。
  注意: 在生成CvPy项目的Debug版本过程中,会提示找不到Python27_d.lib导入库。查看cvPy项目属性的链接器->输入->附加依赖项,我们会发现所填写的导入库为D:\Python27\libs\python27.lib(路径可能不同)。也就是说CMake已经知道我们所下的Python2.7安装包中没有提供Python27.lib的Debug版本,所以为我们选择了Python27.lib的Release版本(注意生成Debug版本的过程中可以链接第三方的Release版本库,只是对应的库就没有提供调试信息了),为什么还会出现找不到Python27_d.lib的错误呢?原因在于cvPy项目的源文件cv.cpp包含了Python.h文件,而Python.h文件又包含了pyconfig.h文件,在pyconfig.h文件中有一段专门针对VS平台的导入库选择代码:

/* For an MSVC DLL, we can nominate the .lib files used by extensions */#ifdef MS_COREDLL#    ifndef Py_BUILD_CORE /* not building the core - must be an ext */#        if defined(_MSC_VER)            /* So MSVC users need not specify the .lib file in            their Makefile (other compilers are generally            taken care of by distutils.) */#            ifdef _DEBUG#                pragma comment(lib,"python27_d.lib")#            else#                pragma comment(lib,"python27.lib")#            endif /* _DEBUG */#        endif /* _MSC_VER */#    endif /* Py_BUILD_CORE */#endif /* MS_COREDLL */

所以在你生成Debug版本的过程中,链接器会去寻找python27_d.lib文件。
  解决的办法:
  1)修改pyconfig.h文件,将 pragma comment(lib,"python27_d.lib")改成pragma comment(lib,"python27.lib")
  2)下载python27_d.lib和python27_d.dll文件。将python27_d.lib文件放入D:\Python27\libs\目录下,将python27_d.dll放入C:\Windows\System32路径下。然后修改项目属性中的附加依赖项:D:\Python27\libs\python27.lib为D:\Python27\libs\python27_d.lib。(建议自己编译python的Debug库或者使用第一种方法,因为可能因为平台或者Python版本的原因,上面所提供的库不能正常使用,出现mismatch等错误情况)

  6.添加生成的cv.pyd文件的路径(D:\OpenCV2.1\lib\Release或者D:\OpenCV2.1\lib\Debug,具体看你需要使用的版本)到python的库路径中

  7.测试,打开CMD(命令行),在D:\OpenCV2.1\samples\python路径下运行:python delaunay.py,你会看到如下图所示的运行结果:)



【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

时间: 2024-08-03 17:12:58

【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持的相关文章

windows下用vs2008和boost结合编译程序

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://co63oc.blog.51cto.com/904636/504469 windows下用vs2008和boost结合编译程序vc6.0和boost结合出现很多错误 使用asio子库中一个http server的示例程序,代码在libs\asio\example\http\server目录下. 1. 下载boost源文件http://sourceforge.net/project

Ubuntu 16.04下为Android编译OpenCV 3.2.0 Manager

http://johnhany.net/2016/07/build-opencv-manager-for-android-on-ubuntu/ 最近想在Android上尝试一下SIFT和SURF匹配算法,但考虑到这些算法都是专利保护的,并没有被包含在预编译库中,所以还需要自己来动手编译OpenCV Android SDK.在OpenCV 2.4.x版本中,这些算法被包含在nonfree模块中:从3.0版本开始,用于图像特征匹配的一些算法(比如SIFT,SURF,BRIEF,FREAK等)被转移到

windows下用vs2010编译ffmpeg

转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛.在linux下编译ffmpeg非常简单,而在Windows下编译就不是那么容易了.一般在windows下使用MinGW的gcc toolchain进行编译,这样的话,因为ffmpeg的导出函数均是C风格,因而gcc编译的lib可以被vs链接.但是gcc的debug

手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav源码使用了一些gcc的特性,那么在Windows下很难使用VC编译,但是使用MinGW编译却简单多了,下面我将根据自己的经历逐步介绍使用MinGW编译libav的过程以及在此过程中遇到的问题及其解决方法. 1      安装MinGW编译环境 1.1    安装MinG

Windows下从源代码编译Skia

在PPAPI里面画图,能够结合第三方的图形库.比方Cairo.Skia. Google Chrome.Chromium和Android都使用Skia作为画图引擎.我也来试试Skia,先过编译关. foruok原创.如需转载请关注foruok的微信订阅号"程序视界"联系foruok. CEF编译出的Skia不可单独用 Chromium使用Skia.Windows下从源代码编译CEF说明了怎么编译CEF,它会捎带着编译Chromium.里面有Skia,但它编译出来的skia_library

Windows下用cmake编译Caffe

Windows下用cmake编译Caffe 2018年8月24日 23:35:41 by ChrisZZ 环境说明 系统: Windows10 编译器:Visual Studio 2015 构建器:CMake 3.12 Caffe: BVLC官方Caffe的windows分支 CUDA: 9.2 CuDNN:7.0 终端: cmd窗口 具体步骤 1. 下载代码 进cmd敲: d: cd work git clone https://github.com/BVLC/caffe caffe-BVLC

Windows(win10)编译opencv + opencv_contrib

在之前的几篇文章中,我提到了在Android.Linux中编译opencv + opencv_contrib,这篇文章主要讲在Windows中编译opencv + opencv_contrib. 首先需要准备的环境有: Window 10 64位:这个大家都知道,就不多说了啊: Cmake:编译工具,可以https://cmake.org/download/下载安装,当前的最新版本为3.10.1: Visual Studio:开发工具,编译的时候也需要用到,我安装的是Visual Studio

Windows 下使用 GNUstep 编译并运行 Objective-C 程序

今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. 不习惯 Mac,在 Windows 下装了个 GNUstep 也可以玩. 非常简单的几步,你也来试试吧? 1. 下载并安装 GNUstep 下载地址:http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/ 有三个文件是必须安装的,分别是: gnuste

windows下ffmpeg的编译

编译ffmpeg-20150428版本所需资源在http://download.csdn.net/detail/phenixzhong/8647531中,每项资源是当前的最新版本. 编译步骤: 1.安装 mingw 和 msys 执行下载文件:mingw-get-inst-20111118.exe, 在第3步选择"Download latest repository catalogues" 选择安装路径:D:\MinGW(我将其安装到D盘) 在"Select Componen