使用visual studio 2012 编译opencv2.4.9

  最近,由于需要从opencv源码部分对opencv中的某个函数进行修改,以提升算法的速度,因此一直在尝试使用vs2012来编译opencv。期间不乏多次的失败。今天通过实验发现了自己编译的opencv库终于可以使用了,不再出现之前出现的链接错误。现将编译过程记录如下,希望可以给需要的人提供思路和帮助。如发现错误之处,也请留言指出,谢谢。

  首先,来看看opencv的安装目录(如下图),可以发现有两个子文件夹。其中build文件夹是已经编译好的,可以直接使用的,而source文件夹顾名思义就是opencv所有的的源码了。但是该源码并不是一个VS的工程文件,因此没法将整个整个源码像打开一个vs工程一样将其打开:

  

  我们现在要做的第一步就是将source中的源码“解包”(“解包”是什么意思我现在也没有弄清楚,在某篇博客中看到的)成一个VS2012的项目。需要用到的工具是Cmake。

    (1)下载并安装好cmake,如下图所示。(我使用的是3.0版本)

    

    (2)在cmake中选择源码路径,并选择将要生成的opencv工程的解决方案的路径。

    

    (3)路径设置好之后,点击Configure按钮。出现如下情况。根据自己的vs版本选择对应的即可。(我的是vs2012):

    

    (4)点击finish后cmake开始工作,结束后出现configure down字样:

    

    (5)再次点击一次Configure,红色部分消失,再次出现configure down:

    

    (6)最后点击Generate,出现Generating down,完成了opencv的解包:

    

    (7)来看看目标路径中都生成了什么。这就是我们通过cmake想要得到的vs2012的解决方案。打开Opencv.sln即可在vs2012中打开opencv的整个项目(注意,当前生成的目录中没有bin和lib这两个目录):

    

  通过上面一步一步详细的介绍,我门现在终于可以饱览opencv源码真容了。我们打开Opencv.sln,在vs2012中打开opencv的项目:

  

  可以看到,vs已经成功加载了opencv的整个项目。在解决方案上右键,并在弹出菜单中点击生成解决方案,等待几分中的时间:

  待生成成功后,我们再来看看opencv项目目录,可以看到目录中多了两个文件夹lib和bin。这两个目录就是我们自己编译的opencv的库:

  

  将bin和lib两个文件夹下的Debug目录下的文件全部拷贝到opencv的安装目录下,覆盖掉原来的lib和dll文件(这样的话就不用重新配置环境了)

  

  编写一段测试程序(我在imshow源码中增加了一个cout<<“this is a test”<<endl;语句):

#include<opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
	int i;
   Mat   img = imread("test.jpg");
   if (img.empty())
   {
	   fprintf(stderr,"Error:load image failed.");
	   system("pause");
	   return -1;
   }
   namedWindow("image",CV_WINDOW_AUTOSIZE);
   imshow("image",img);
   waitKey();
   system("pause");
   return 0;
}

  运行后结果如下,可以看到,控制台中输出了this is a test!:

  

  

  至此,整个opencv的编译过程到此结束。希望可以给大家帮助!

参考博客:

http://www.tuicool.com/articles/f6ZBZv

原创博文,转载请注明出处:http://www.cnblogs.com/xiongmao-cpp/

时间: 2024-10-11 08:10:26

使用visual studio 2012 编译opencv2.4.9的相关文章

(转:)Visual Studio 2012 编译错误【error C4996: &#39;scanf&#39;: This function or variable may be unsafe. 】的解决方案

在VS 2012 中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 原因是Visual C++ 2012 使用了更加安

[转]Visual Studio 2012 编译错误【error C4996: &#39;scanf&#39;: This function or variable may be unsafe. 】的解决方案

原文地址:http://www.cnblogs.com/gb2013/archive/2013/03/05/SecurityEnhancementsInTheCRT.html 在VS 2012 中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecat

Visual Studio 2012 编译错误【error C4996: &#39;scanf&#39;: This function or variable may be unsafe. 】的解决方案(转载)

转载:http://www.th7.cn/Program/c/201303/127343.shtml 原因是Visual C++ 2012 使用了更加安全的 run-time library routines .新的Security CRT functions(就是那些带有“_s”后缀的函数),请参见: <CRT函数的安全增强的版本> 下面给出这个问题的解决方案: 方法一:将原来的旧函数替换成新的 Security CRT functions. 方法二:用以下方法屏蔽这个警告: 1. 在预编译

安装visual studio 2012,并配置opencv

在同学的帮助下,终于成功配置了vs+opencv,将详细过程记录在此,方便以后查阅 参考1 安装vs2012 下载vs2012,官方下载地址 双击安装文件,设置安装路径 2.选择需要的安装包 3.安装进行中 4.终于安装完成 5.点击启动 提示输入产品秘钥 YKCW6-BPFPF-BT8C9-7DCTH-QXGWC 激活成功 6.出现其它配置页面 这里选择C++为默认开发环境 7.启动 8.注意,有时可能出现兼容性问题,需要下载更新包 点击安装即可 安装opencv 1.下载opencv源码 o

Visual Studio 2012下Box2D开发环境设置

Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的Visual Studio 2012下开发的Win32平台,所以这一节我们介绍Visual Studio 2012下Box2D开发环境设置.这些需要设置和调整的方面包括如下:在解决方案中添加libBox2D库工程.添加libBox2D库引用.开启Box2D预编译开关. 1.在解决方案中添加libBo

Visual Studio 2010配置Opencv2.4.9

转自: http://blog.csdn.net/huang9012/article/details/21811129 这篇文章作为OpenCV的启程篇,自然少不了先系统地介绍OpenCV开发环境的配置. 浅墨前后经历过OpenCV 2.4.6,OpenCV 2.4.7,OpenCV 2.4.8这三个版本的配置,有时候还要涉及到三个版本之间的转换,所以还是对OpenCV的配置有一定的理解的,希望自己的一点拙见能帮到大家. 还是先放出待会儿的测试用图: 1.下载和安装OpenCV SDK VS20

Visual C++ 指导教程 — — Visual Studio 2012

Visual C++ 指导教程 Visual Studio 2012 在本指导教程中,将介绍 Visual Studio 开发环境,以及可以使用 Visual C++ 创建的各种类型的应用程序. 其中包括命令行应用程序.Windows 应用程序,甚至简单的游戏. 本指导教程还将介绍如何创建可重用代码库,以及如何在编写和测试了代码后将其交付给客户. 因为每个主题都以上一主题中的信息为基础,所以我们建议您按顺序完成指导教程. 在每个主题的底部,您可以找到指导教程下一主题的导航链接和上一主题的链接(如

Microsoft Visual Studio下编译缺少头文件unistd.h解决办法

问题 使用Visual Studio 2012在Win7下编译一个来自于Linux平台的源文件时,要求使用头文件uninstd.h,报错: fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory 解决办法 对于VS2012来说,我们可以在默认库文件夹下(我的电脑是C:\Program Files\Microsoft Visual Studio 10.0\VC\include)添加一个un

error MSB8020: The build tools for Visual Studio 2012 (Platform Toolset = &#39;v110&#39;)

编译平台工具集选择错了,VS2012程序在打开的时候,默认是使用V110编译平台工具集,而V110是VS2012的编译平台,你电脑里没有安装此平台工具集,故提示此错误.  你可以打开项目属性,把平台工具集改一下即可. error MSB8020: The build tools for Visual Studio 2012 (Platform Toolset = 'v110')