• opencv学习之路(1)


    配置VC

    配置include路径

    也即告诉VC去什么地方寻找OpenCV的头文件,打开VC,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件”,包含 D:\Program Files\OpenCV2.3.1\opencv\build\include;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv2 如果是自己编译的则输入D:\Program Files\OpenCV2.3.1\opencv\build\my\install\include

    点击看大图
    Enlarge
    点击看大图

    配置lib路径

    也即告诉VC去什么地方寻找OpenCV的库文件。

    在刚才下载的文件OpenCV-2.3.1-win-superpack.exe 里,已经为VC2008和VC2010预先编译好了动态库和静态库。因此我们不需要如早先版本那样,自己用cmake编译OpenCV。

    • 自己编译的库,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib
    (注:由于自己编译成功,lib文件在Debug和Release两个文件中,加载库时需到Debug和Release中,
    我配置的库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,否则调试时无法进入Open CV代码中。 by:Jackyzzy 赵振阳)
    • 32位系统 & VC2008,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\lib
    • 32位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\lib
    • 64位系统 & VC2008,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc9\lib
    • 64位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\lib

    请根据自己的情况四选一,将库目录输入菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“库文件” 。如下图所示:

    点击看大图
    Enlarge
    点击看大图
    点击看大图
    Enlarge
    点击看大图
    点击看大图
    Enlarge
    点击看大图

    设置环境变量

    刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。dll文件目录如下,请根据自己情况五选一:

    • 自己编译的库,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\bin
    • 32位系统 & VC2008,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin
    (注:此处环境变量应与上边库目录一致,这样能够调试时能够进入代码,我自己的目录是:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin\Debug。 by:Jackyzzy 赵振阳)
    • 32位系统 & VC2010,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\bin
    • 64位系统 & VC2008,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc9\bin
    • 64位系统 & VC2010,dll目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\bin

    由于有些函数需要TBB,所以需要将tbb所在的目录也加入到环境变量Path中。TBB相关的DLL路径为:

    • 32位系统 & VC2008:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc9
    • 32位系统 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc10
    • 64位系统 & VC2008:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc9
    • 64位系统 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc10

    如下图所示将OpenCV和TBB的dll文件所在的目录系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。

    点击看大图
    Enlarge
    点击看大图
    点击看大图
    Enlarge
    点击看大图

    使用OpenCV 2.3.1编程

    • 打开VC++ 2008 Express,创建一个Win32控制台程序helloopencv;
    点击看大图
    Enlarge
    点击看大图
    • 选择Solution Explorer里的opencvhello项目,点击鼠标右键,选择Properties。
    点击看大图
    Enlarge
    点击看大图
    • ,在[链接器 LINKER]的[输入INPUT]中,为项目的Debug配置增加 [附加依赖项 Additional Dependencies]:opencv_calib3d231d.lib; opencv_contrib231d.lib; opencv_core231d.lib; opencv_features2d231d.lib; opencv_flann231d.lib; opencv_gpu231d.lib; opencv_highgui231d.lib; opencv_imgproc231d.lib; opencv_legacy231d.lib; opencv_ml231d.lib; opencv_objdetect231d.lib; opencv_ts231d.lib; opencv_video231d.lib (可根据实际需要删减)注意,请打开了新编辑窗口(即点击了“...”按钮)“附加依赖项”,并一条一条分别加入,一条一行(一个回车),(注意行末不要 加";")否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“…….lib”
    • 如果下载的OpenCV不是2.3.1版本,请将"XXX231d.lib"中的"231"更改为对应的版本号,例如:下载 OpenCV 2.4.0,则统一改为"XXX240d.lib",否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“XXX.lib”
    点击看大图
    Enlarge
    点击看大图
    • 为项目的Release配置增加[附加依赖项 Additional Dependencies]:opencv_calib3d231.lib; opencv_contrib231.lib; opencv_core231.lib; opencv_features2d231.lib; opencv_flann231.lib; opencv_gpu231.lib; opencv_highgui231.lib; opencv_imgproc231.lib; opencv_legacy231.lib; opencv_ml231.lib; opencv_objdetect231.lib; opencv_ts231.lib; opencv_video231.lib (可根据实际需要删减)*
    点击看大图
    Enlarge
    点击看大图
    • 编译运行下面的例程(需要将lena.jpg文件放在项目目录下,即与生成的.exe文件同位置)(这里有误。双击exe的话,图片放在.exe同一文件夹内;按F5直接运行程序的话,lena.jpg要放在helloopencv\helloopencv里)。
    /***********************************************************************
    * OpenCV 2.3.1 测试例程
    * 于仕琪 提供
    ***********************************************************************/

    #include "stdafx.h"
     
    #include <opencv2/opencv.hpp>
     
    using namespace std;
    using namespace cv;
     
    int main(int argc, char* argv[])
    {
    const char* imagename = "lena.jpg";
     
    //从文件中读入图像
    Mat img = imread(imagename);
     
    //如果读入图像失败
    if(img.empty())
    {
    fprintf(stderr, "Can not load image %s\n", imagename);
    return -1;
    }
     
    //显示图像
    imshow("image", img);
     
    //此函数等待按键,按键盘任意键就返回
    waitKey();
     
    return 0;
    }
    程序运行结果图,点击看大图
  • 相关阅读:
    Servlet的生命周期?
    C++图结构的图结构操作示例
    如何从google play下载app应用,直接下载apk
    C# Socket异步聊天例子
    三极管饱和,放大,截止电压判断
    java中的浮点(float)运算
    微软2014校园招聘笔试试题
    软件开发中的资源控制问题学习
    linux mount命令学习
    17、Spring Boot普通类调用bean【从零开始学Spring Boot】
  • 原文地址:https://www.cnblogs.com/winnter/p/3082591.html
Copyright © 2020-2023  润新知