zoukankan      html  css  js  c++  java
  • 实用图像处理入门

    1. 写在前面的话:

    这一系列博文, 也是我的图像处理入门之路.
    庆幸的是, 我站在很多巨人的肩膀上, 比较顺利的到达了一个小里程碑.
    难过的是, 我说"比较顺利"是因为从互联网泛滥的信息里面找到真正有用同时又在我的理解范围之内的资料, 不是一件很容易的事情.
    所以, 我想让更多的和我一样的入门者, 能通过这一系列博文, 顺利的"进入"到图像处理来而不是被开始的荆棘吓走.
    如果有一个朋友因为我而更"容易"入门到实用图像处理, 我便觉得我做的事情有意义, 也是我继续写下去的动力.

    正如日志标题所说, 这一系列日志非常偏重于"实用", 而很少提到原理. 显而易见的目的就是想让任何一个有一点coding经验的人都能快速的构建自己的分类器对图像进行识别. 当然, 如果你想深入了解, 每篇日志都有"扩展阅读". 为了不打断原本的"实用主义"的节奏, 我把这些”扩展阅读”都放在了日志末尾.

    2. VS2012, opencv环境搭建

    2.1 环境准备

    1. 安装 Visual Studio 2012
    2. 下载 opencv 最新版本( 目前是2.4.6, 下载链接 )

    2.2 安装 opencv

    2.2.1. 双击下载的 OpenCV-2.x.x.exe. 选择你想解压到的位置.

    image

    2.2.2. 设置环境变量.

    步骤一, 打开环境变量设置界面.

    方法一:  开始 –> 控制面板 –> 系统和安全 –> 系统 –> 高级系统设置 –> 高级 –> 环境变量

    方法二: 开始 –> 控制面板, 右上角搜索”环境变量”, 点击”编辑系统环境变量”-> 环境变量

    上述操作之后可看到以下界面:

    image

    步骤二, 点击按钮1( 如上图所示“新建”),

    image

    变量名填写”opencv”.

    变量值填写”{opencv}/build/x86/vc11/bin”. ( {opencv} 替换为你自己的opencv安装目录" )

    关闭上图”新建用户变量”窗口

    步骤三, 在上上图”环境变量”窗口找到变量”path”( 大小写不敏感 ). 点击按钮2( 如上上图所示”编辑” )

    image

    更改”变量值”, 在原有的变量值基础上, 增加”;%opencv%”. 点击确定.

    2.3 设置 VS 2012 环境.

    2.3.1. 如果现在你的 vs打开着,请关闭重新打开vs.
    2.3.2. 新建 Project

    image

    下一步, 注意下面几个选项.

    image

    完成 项目创建

    2.3.3. 设置项目属性.

    2.3.3.1 步骤一, 新建 Property Sheet.

    在VS最左侧找到 “Property Manager”( 属性管理 ) 选项卡, 如下图所示. ( 如果没有找到”Property Manager”. 点击菜单栏 “VIEW” –> “Property Manager” 即可看见 )

    如下图所示, 在 “Debug|Win32” 上右键单击, 点击”Add New Project Property Sheet”

    image

    填写以下标注内容.

    Name 随便写, 只要你能认识

    Location 随便写, 只要你能找到.

    image

    点击”Add”完成创建.

    2.3.3.2 步骤二, 编辑 Property Sheet 属性

    如下图所示, 编辑 “opencv244” 的属性.

    image

    做以下编辑:

    image

    Include Directories 添加 “{opencv}uildinclude”.

    Library Directories 添加 “{opencv}uildx86vc11lib”; ( {opencv} 替换为你的opencv安装路径 )

    图下图所示, 点击”Linker –> Input –> Additional Dependencies”.

    image 

    添加以下内容:

    opencv_core246d.lib
    opencv_imgproc246d.lib
    opencv_highgui246d.lib
    opencv_ml246d.lib
    opencv_video246d.lib
    opencv_features2d246d.lib
    opencv_calib3d246d.lib
    opencv_objdetect246d.lib
    opencv_contrib246d.lib
    opencv_legacy246d.lib
    opencv_flann246d.lib

    上面的”246”换成你下载的opencv版本.比如你的版本是2.4.4, 那么所有的246换成244即可.

    完成设置

    2.3.3.4. 设置 Release 属性

    完成”设置项目属性”之后, 你的debug版本便可正常使用. 如果需要设置 release 版本. 重复上面步骤3.

    中间有两处不同:

    1. 在步骤2.3.3.1中, 需要对 “Release |Win32” 添加 Property Sheet.

    2. 在步骤2.3.3.2 中 所有Additional Dependencies 项, XXX246d.lib 都去掉 “d". 比如 “opencv_core246d.lib” 变成”opencv_core246.lib”. 全部去掉后变成:

    opencv_core246.lib
    opencv_imgproc246.lib
    opencv_highgui246.lib
    opencv_ml246.lib
    opencv_video246.lib
    opencv_features2d246.lib
    opencv_calib3d246.lib
    opencv_objdetect246.lib
    opencv_contrib246.lib
    opencv_legacy246.lib
    opencv_flann246.lib

    2.3.4 编写测试代码并运行.

    2.3.4.1. 新建 main.cpp. 填写以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <opencv2/opencv.hpp> 
       
    using namespace cv; 
     
    int main() 
        Mat img = imread("../img.png"); 
       
        if (img.empty()) 
       
            fprintf(stderr, "Error: load image failed."); 
            return -1; 
       
        namedWindow("image", CV_WINDOW_AUTOSIZE); 
        imshow("image", img); 
        waitKey(); 
       
        return 0; 

    2.3.4.2 随便找张图片, 放到放到你的工程目录, 命名为 img.png:

    image

    2.3.4.3 RUN~~

    image

    Contradulations~

  • 相关阅读:
    angularjs的$on、$emit、$broadcast
    angularjs中的路由介绍详解 ui-route(转)
    ionic入门教程-ionic路由详解(state、route、resolve)(转)
    Cocos Creator 加载使用protobuf第三方库,因为加载顺序报错
    Cocos Creator 计时器错误 cc.Scheduler: Illegal target which doesn't have uuid or instanceId.
    Cocos Creator 构造函数传参警告 Can not instantiate CCClass 'Test' with arguments.
    Cocos Creator 对象池NodePool
    Cocos Creator 坐标系 (convertToWorldSpaceAR、convertToNodeSpaceAR)
    Cocos Creator 常驻节点addPersistRootNode
    Cocos Creator 配合Tiled地图的使用
  • 原文地址:https://www.cnblogs.com/jhzhu/p/3175832.html
Copyright © 2011-2022 走看看