• VS2010平台下的OpenCV、EmguCV( C#)安装、使用配置



    OS:Win7旗舰版64位

    平台:VS2010旗舰版 x86

    安装包版本:OpenCV2.4.2 x86 下载地址:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.2/OpenCV-2.4.2.exe/download

          EmguCV2.4.2 x86 下载地址:http://sourceforge.net/projects/emgucv/files/emgucv/2.4.2/libemgucv-windows-x86-gpu-2.4.2.1773.exe/download

    OpenCV:

    1. 解压

    为了便于管理,我在D盘根目录下新建了CV文件夹,然后解压至下面。

    2. 设置系统变量

    实际上我是在"用户变量"处,新建了PATH项,内容:

    D:\CV\OpenCV2.4.2\build\x86\vc10\bin;

    网上有说还需要新建OPENCV项,内容为D:\CV\OpenCV2.4.2\build,我没有加进去,也配通了。暂时没有发现其作用。

    ————————下面是每个项目的配置————————

    3. 建立一个demo

    在C++下,新建一个“win32控制台程序”,“空项目”即可,输入以下代码:

    ——————————————————————————————————
    #include "highgui.h"

    int main()
    {
    const char* imagename = "D:/Demo.jpg";//随便放一张jpg图片在D盘或另行设置目录
    cv::Mat img = cv::imread(imagename);

    if(img.empty()) return -1;//是否加载成功
    if(!img.data) return -1;

    cv::namedWindow("image", CV_WINDOW_AUTOSIZE);
    cv::imshow("image", img);
    cv::waitKey();
    return 0;
    }

    ————————————————————————————————————————

    4. 配置
    (1)、在“视图”中打开“属性管理器”;
    (2)、在“属性管理器”中双击Demo的项目名称;
    (3)、在“Demo属性页”->“VC++目录”->“包含目录”中添加下面一行(包括所有分号):
    D:\CV\OpenCV2.4.2\build\include;

    D:\CV\OpenCV2.4.2\build\include\opencv;

    D:\CV\OpenCV2.4.2\build\include\opencv2;


    (4)、在“Demo属性页”->“VC++目录”->“库目录”中添加下面一行(包括所有分号):
    ;D:\CV\OpenCV2.4.2\build\x86\vc10\lib

    (5)、在“Demo属性页”(“配置”==“Debug”)->“配置属性”->“链接器”->“输入”->“附加依赖库”中添加下面一行(包括所有分号):
    opencv_core242d.lib;

    opencv_highgui242d.lib;

    opencv_video242d.lib;

    opencv_ml242d.lib;

    opencv_legacy242d.lib;

    opencv_imgproc242d.lib

    (6)、在“Demo属性页”(“配置”==“Release”)->“配置属性”->“链接器”->“输入”->“附加依赖库”中添加下面一行(包括所有分号):
    opencv_core242.lib;

    opencv_highgui242.lib;

    opencv_video242.lib;

    opencv_ml242.lib;

    opencv_legacy242.lib;

    opencv_imgproc242.lib

    至此配置基本完毕,我运行的时候发现报错:丢失tbb_debug.dll。安装TBB,配置用户变量,问题解决。

    软件包名称:tbb40_20120613oss_win.zip (Intel TBB)

    下载地址:

    http://threadingbuildingblocks.org/uploads/77/187/4.0%20update%205/tbb40_20120613oss_win.zip

    用户变量PATH添加:D:\CV\tbb40_20120613oss\bin\ia32\vc10;

    至此,OpenCV2.4.2配置完成,程序顺利运行。

    EmguCV:

    过程类似。我安装在D:\CV下面,以便统一管理。

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

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

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

    点击“工具(T)” -> “选择工具箱项(X)…” ,在新打开的窗口中选择:“.NET Framework组件”,点击“浏览”,到目录:C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin下,双击Emgu.CV.UI.dll即可
     
    问题&总结:
    1,出现Emgu.CV.CvIvoke错误,或者显示找不到opencv_core242.dll模块:
     
    出错目前有两种情况:
    一是没有装OpenCV,或是是配置的不成功。我试了下,没有OpenCV,会出现Emgu.CV.CvIvoke错误,或者显示找不到opencv_core242.dll模块。可能EmguCV需要依赖OpenCV。网上有说可以独立存在,可以拷贝DLL文件到exe的当前目录。我试了,发现不行。
    二是OpenCV和EmguCV的版本不一致。我之前装了OpenCV2.3.1和EmguCV2.4.2,折腾了一天,包括尝试x64位安装包、复制dl、修改系统变量、修改文件夹名(无空格全英文)等办法,均报上述错误。后来统一了版本2.4.2,轻松跑通。
     
    2,修改系统变量不会立即生效,有人推荐重启explorer.exe,不推荐,测试发现有时候失效,还会容易让你误以为修改过了。推荐注销操作,又快又稳妥。
     
    3,EmguCV需要.net 3.5,这个win7自带的。没有的系统,需要安装下。
     
    4,vcredist_x86也是需要的,不然会出错。好在现在EmguCV的安装包自带了。
     
    5,留意虽然是x64位的win7系统,但是VS2010、OpenCV、EmguCV均是x86的,依然可以正常配通,不需要x64位的包(有空测试下x64位的安装包)。只是在VS2010里面,CPU要选择x86的。
     
    暂时就这些,想到了再来补充。
     
     
     
     
    标签: VS2010OpenCVEmguCVC#
  • 相关阅读:
    2-1(续)
    2-1
    28-69. Sqrt(x)
    27-75. Sort Colors
    26-78. Subsets
    MySQL--->存储引擎及图形化工具
    MySQL--->高级对象
    MySQL--->常用函数
    MySQL--->多表查询
    MySQL--->高级查询
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2668265.html
Copyright © 2020-2023  润新知