zoukankan      html  css  js  c++  java
  • 在VS中配置并测试opencv

      什么是opencv?

      opencv是一个计算机视觉库。它目前有两个分支2.4.X和3.X,2.4.X版本是经典版本,网上的教程资源大多是关于它的,所以推荐使用2.4.X。

      它能帮我做什么?

      这意味着你可以在自己的程序中使用计算机视觉相关功能,但不必关注具体实现。就像你使用电脑,但并不用关注电脑内部的原理。你唯一需要知道的就是如何使用它。

      我该如何使用它?

      这就是本文的工作^-^ 。

      

      1,下载opencv

      首先到opencv官网下载win平台的opencv,解压后你可以看到下面两个文件夹——build和sources,build是官方已经为我们编译好的可以直接使用的,而sources中是opencv的源码,仅供高级玩家尝试。

     

      下载下来后可以大致浏览一下build文件夹下的内容:

      粗略一看就看到了熟悉的x86与x64(32位用和64位用),还有vc11和vc12,虽然以前没见过但大致也可以猜出vc11和vc12是指自己的VS中vc版本,我们可以根据自己的系统与vs版本来选择。

      2.配置环境变量

      程序中的可执行文件,必须添加到系统环境变量PATH中才能被系统识别。这就类似一所房子,你必须登记到你的名下,才能使用它。opencv也是一样,它在某些目录中提供了一些可执行文件,所以我们必须将这个目录添加到系统环境变量中。

      比如说我的可执行文件目录是E:\opencv\build\x64\vc12\bin

      配置如下:

      3.配置VS工程

        在VS中新建一个win32 application的项目(略)。

        3.1 配置头文件位置

        当你在自己的代码中使用了opencv中的类或函数时,编译器并不知道这是个怎样的物体有什么功能。这就需要我们引用对应的头文件,因为在对应的头文件中有关于这个物体的描述,这样程序才能正确编译。然而这些头文件在哪里呢?我们需要告诉编译器。

        比如我的头文件目录是:

    E:\opencv\build\include
    E:\opencv\build\include\opencv
    E:\opencv\build\include\opencv2

    将其配置到下面的“包含目录”中:

        3.2 配置库文件位置与指定库文件

        include中的头文件,只能大致的描绘opencv中的物体是怎样的有什么功能。但具体的,实现的,可运行的二进制代码全在库文件中,也就是lib文件中。只有这些具体实现的二进制代码链接到你的二进制代码中,程序才能正常工作。然而这些库文件在哪里呢?我们需要告诉编译器。

        先配置库文件位置:

        比如我的库文件位置是 E:\opencv\build\x64\vc12\lib

        将其配置到下面的“库目录”中:

        

        然后指定库文件: 

    opencv_calib3d2413.lib
    opencv_calib3d2413d.lib
    opencv_contrib2413.lib
    opencv_contrib2413d.lib
    opencv_core2413.lib
    opencv_core2413d.lib
    opencv_features2d2413.lib
    opencv_features2d2413d.lib
    opencv_flann2413.lib
    opencv_flann2413d.lib
    opencv_gpu2413.lib
    opencv_gpu2413d.lib
    opencv_highgui2413.lib
    opencv_highgui2413d.lib
    opencv_imgproc2413.lib
    opencv_imgproc2413d.lib
    opencv_legacy2413.lib
    opencv_legacy2413d.lib
    opencv_ml2413.lib
    opencv_ml2413d.lib
    opencv_nonfree2413.lib
    opencv_nonfree2413d.lib
    opencv_objdetect2413.lib
    opencv_objdetect2413d.lib
    opencv_ocl2413.lib
    opencv_ocl2413d.lib
    opencv_photo2413.lib
    opencv_photo2413d.lib
    opencv_stitching2413.lib
    opencv_stitching2413d.lib
    opencv_superres2413.lib
    opencv_superres2413d.lib
    opencv_ts2413.lib
    opencv_ts2413d.lib
    opencv_video2413.lib
    opencv_video2413d.lib
    opencv_videostab2413.lib
    opencv_videostab2413d.lib

        其实这就是库文件目录下的所有库文件,你可以用cmd进入对应文件夹下,用“dir /b”命令来列出所有lib文件,然后复制到下面的“附加依赖项”中:

        

      4.测试opencv

      我们简单的测试一下opencv打开一张图片并显示,代码如下:

     1 //读取图片并显示
     2 #include "stdafx.h"
     3 #include<iostream> 
     4 #include <opencv2/core/core.hpp> 
     5 #include <opencv2/highgui/highgui.hpp> 
     6 using namespace cv;
     7 int main()
     8 {
     9     Mat img = imread("D:\\test.jpg");
    10      namedWindow("测试opencv");
    11      imshow("测试opencv", img);
    12     cvWaitKey(6000);
    13 }

      使用的图片如下(将图片保存到D盘根目录,并改名为test,即与程序中的一致):

      

      有了数据,有了程序,我们就可以运行了,但是千万别忽略了这个:

      运行效果(略)。

       TIP:【VS2013中如何解决error C4996: 'fopen'问题】请参考【http://jingyan.baidu.com/article/ce436649fd61543773afd32e.html】

     

  • 相关阅读:
    ajax返回乱码的解决方案
    Javascript里使用Dom操作Xml
    ASP.NET 网站路径
    远程连接SQL Server
    缘 in English
    简单C#验证类
    js事件列表
    ArrayList用法
    下拉菜单遮挡层的解决方案
    正则表达式过滤HTML危险脚本
  • 原文地址:https://www.cnblogs.com/huaxiaforming/p/5585746.html
Copyright © 2011-2022 走看看