我们大家都知道opencv是针对C、C++编写的,没有独立的编译调试工具。所以今天就捣鼓了一下在xp vs2010下配置C++和C#环境下的opencv。请大家一步一步的按步骤操作。本人亲自鉴定可行。

VS2010下OpenCV、EmguCV(C#)安装和使用配置,首先是安装环境:

OS:Win7旗舰版64位

平台:VS2010旗舰版 x86

下面的安装包来自国外网站,有一些用户需要FQ才能下载。。

安装包版本(针对C++):OpenCV2.4.0 x86 下载地址:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.0/OpenCV-2.4.0.exe/download

EmguCV2.4.0 x86 (针对C#)下载地址:http://sourceforge.net/projects/emgucv/files/emgucv/2.4.0/libemgucv-windows-x86-gpu-2.4.0.1773.exe/download

一:针对C++配置opencv

1.    系统Path里添加(注销当前用户或者重启系统会生效):

1.1 计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用   户,系统里面的path任选其一)->在变量值最后面输入(用分号;隔开):;D:\Program Files\OpenCV\OpenCV-2.4.0-win\vc10\bin;D:\Program Files\OpenCV\Tbb_win\bin\ia32\vc10

2.    用VS2010新建控制台工程测试:

1)、文件->新建->项目->Visual C++->Win32 控制台应用程序(输入名称test)

2)、确定->下一步->附加选项选“空项目”->完成

3)、解决方案资源管理器->源文件(右键)->添加->新建项

4)、Visual C++->C++文件:输入名称test点添加

5)、粘贴下面的代码,保存

#include <opencv2\opencv.hpp>

#include <iostream>

#include <string>

using namespace cv;

using namespace std;

int main()

{

Mat img = imread("pp.jpg");

if(img.empty())

{

cout<<"error";

return -1;

}

imshow("xx的靓照",img);

waitKey();

return 0;

}

6)、把自己的靓照改名为pp.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)

3.项目(菜单项)→ 当前项目属性 → VC++目录:需要配置“包含目录”。

D:\Program Files\OpenCV\OpenCV-2.4.0-win\vc10\include

D:\Program Files\OpenCV\OpenCV-2.4.0-win\vc10\include\opencv

D:\Program Files\OpenCV\OpenCV-2.4.0-win\vc10\include\opencv2

4. 项目(菜单项)→ 当前项目属性 → VC++目录:需要配置“库目录”两项:D:\Program Files\OpenCV\OpenCV-2.4.0-win\vc10\lib; D:\Program Files\OpenCV\Tbb_win\lib\ia32\vc10

5.配置连接器:项目(菜单项)→ 当前项目属性 → 连接器 → 输入 → 附加依赖项

针对debug配置添加以下库

opencv_calib3d240d.lib;

opencv_contrib240d.lib;

opencv_core240d.lib;

opencv_features2d240d.lib;

opencv_flann240d.lib;

opencv_gpu240d.lib;

opencv_haartraining_engined.lib;(实际配置中这个库要去掉,不然报错)

opencv_highgui240d.lib;

opencv_imgproc240d.lib;

opencv_legacy240d.lib;

opencv_ml240d.lib;

opencv_nonfree240d.lib;

opencv_objdetect240d.lib;

opencv_photo240d.lib;

opencv_stitching240d.lib;

opencv_ts240d.lib;

opencv_video240d.lib;

opencv_videostab240d.lib

如果是release配置(以后再说,只需要添加上面的debug配置就行了现在),则添加:

opencv_calib3d240.lib

opencv_contrib240.lib

opencv_core240.lib

opencv_features2d240.lib

opencv_flann240.lib

opencv_gpu240.lib

opencv_highgui240.lib

opencv_imgproc240.lib

opencv_legacy240.lib

opencv_ml240.lib

opencv_objdetect240.lib

opencv_ts240.lib

opencv_video240.lib

6. 按F5运行,如果图片显示出来就说明配置成功。

7.编译地时候 CvRound错误处理:项目(菜单项)→ 当前项目属性 → 常规 → 公共语言运行时支持 →公共语言运行时支持(/clr)

二:针对C#来配置opencv

过程类似。我安装(直接安装刚才下载的安装包)在D:\CV下面,以便统一管理。

用户变量PATH添加:D:\CV\Emgu\emgucv-windows-x86-gpu 2.4.0.1773\bin;

调试运行时候,记得添加dll文件的引用和using 指令。

有人说需要导入UI插件,我没有导入但还是跑通了。顺便记下以便备用:

点击“工具(T)” -> “选择工具箱项(X)…” ,在新打开的窗口中选择:“.NET Framework组件”,点击“浏览”,到目录:C:\Emgu\emgucv-windows-x86 2.4.0.1773\bin下,双击Emgu.CV.UI.dll即可
 
测试代码大家可以从网上下载,也可以用opencv或emgu里面自带的例子。
如果需要安装软件的话请向我索取就可以啦。。。并希望结交朋友共同学习机器视觉和上位机软件C#编程。。
 

 

VS2010编译器下针对C#和C++的opencv的配置方法的更多相关文章

  1. stm32f107vc在IAR环境下,引用库函数的工程文件的配置方法

    stm32做开发很方便的一个原因是大家可以稍稍放松对于硬件寄存器等的设置,因为stm32有了非常丰富和实用的库函数,外设文件等等,所以我们在使用的时候可以更加关注程序开发的过程和逻辑关系.但是,在开发 ...

  2. 在CentOS6.5 下安装并使用Java开发opencv的配置(一)

    1) 安装gcc以及cmake等等乱七八糟的软件 yum install gcc yum install python yum install cmake yum groupinstall " ...

  3. Apache下禁止使用IP直接访问本站的配置方法

    现在管的严啊,上面要求不能使用IP直接访问服务器,把apache配置做下调整就行了.方法如下: 打开apache的配置文件 # vi /usr/local/apache2/conf/extra/htt ...

  4. Mac下开启与关闭端口转发的脚本配置方法

    一.依次运行以下命令: cd /etc ls | grep pf.conf sudo cp pf.conf pf.conf.normal.bak sudo cp pf.conf pf.conf.tra ...

  5. 实战解读丨Linux下实现高并发socket最大连接数的配置方法

    摘要:Linux操作系统,无论是编写客户端程序还是服务端程序,在高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制. [诉求场景] Linux操作系统,无论是编写 ...

  6. Boost学习总结(一)VS2010环境下编译STLport和Boost

    Boost学习总结(一)VS2010环境下编译STLport和Boost Boost简介 Boost库是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库.1998年,Beman G.Da ...

  7. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  8. .net(C#)在vs2010版本下的MVC如何配置才能切换静态页面(html)

    由于vs2010用的人比较多,虽然建mvc项目vs2010可能还不成熟,但鉴于每个人的成长有限,每个地方的资源有限,最主要的是为了解决问题,所以先不管那么多了. 用vs2010为公司网站建站,要求js ...

  9. Win7+VS2010环境下CEGUI 0.8.4编译过程详解

    转载▼   1. 在http://cegui.org.uk/download 下载CEGUI源码包 cegui-0.8.4 以及CEGUI依赖库(Windows / Apple OS X only) ...

随机推荐

  1. jstl表达式

    JSTL标签库 1.什么是JSTL JSTL是apache对EL表达式的拓展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便, 它与JSP动作标签一样,只不过它不是JSP ...

  2. IOS中bounds和frame

    * 用bounds和frame来修改尺寸是有一些小区别的 三.isEqual:方法 1> 系统会根据对象isEqual方法的返回值来决定两个对象是否相同 * 比如判断对象a和b是否相同,就会查看 ...

  3. hihoCoder hiho一下 第四十八周 题目1 : 拓扑排序·二

    题意: 给定一个拓扑图,其中部分结点含有1个病毒,每个结点只要收到病毒就会立即往出边所能到达的点传播,病毒数可叠加,求所有结点的病毒数总和. 思路: 根据拓扑的特点,每个入度为0的点肯定不会再被传播病 ...

  4. hibernate封装查询,筛选条件然后查询

    // 封装查询条件 @Test public void transmitParameter() { Map map = new HashMap<String, String>(); // ...

  5. jquery再学习(1)

    一:jquery对象和js的dom对象相互转化 html代码 <ul> <li class="sxf" name="dd">第一< ...

  6. Java中Enum枚举的使用

    三种不同的用法 注意项: 1.在switch中使用枚举能使代码的可读性更强.   2.如果要自定义方法,那么必须在enum实例序列的最后添加分号.而且Java要求必须先定义enum实例.   3.所有 ...

  7. hdu 2167(状态压缩基础题)

    题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取! 分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是 ...

  8. ActiveMQ之二--JMS消息类型

    1.前言 //发送文本消息 session.createTextMessage(msg); //接受文本消息 public void onMessage(Message msg) { TextMess ...

  9. PreferenceActivity使用方法

              public class MainActivity extends Activity { @Override protected void onCreate(Bundle save ...

  10. Nginx中的upstream轮询机制介绍

    Nginx中upstream有以下几种方式: 1.轮询(weight=1) 默认选项,当weight不指定时,各服务器weight相同, 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器d ...