VS2008下配置OpenCV2.2

刚开始学OpenCV,装了个最新的版本2.2,然后找了个教程学习基本的例程。

(安装指南:http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0/2.1#.E4.B8.BAVC.2B.2B_2008_Express.E9.85.8D.E7.BD.AEOpenCV.E7.8E.AF.E5.A2.83)

 

然后,教程里的程序用的是2.0版本的,两个版本的库都不一样了。

比如,cv.h这个头文件,我现在的电脑里就找不到,安装指南里说要包含进去的库cv200d.lib也没有了。

我想着,也许在别的库里包含了吧,先试着不用它咯,不包含了。无意外地,程序编译出错了……

无奈,只得查看库文件应该在哪里,找到下面的2.2版本的官方网站的翻译,才知道

#include "cv.h" 语句要改成

#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"

于是,对应的cv200d.lib库也相应地改为opencv_imgproc220d.lib,确切地说是在配置VS2008时,

选择菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories

    Show directories for选择include files,加入目录 D:/Program Files/OpenCV2.0/vc2008/include

    Show directories for选择library files,加入目录 D:/Program Files/OpenCV2.0/vc2008/lib

 

然后新建项目后,需要配置一下属性,在[链接器 LINKER]的[输入INPUT]中:

    为项目的Debug配置增加依赖的库:opencv_core220d.lib opencv_imgproc220d.lib opencv_highgui220d.lib

    为项目的Release配置增加依赖的库:opencv_core220.lib opencv_imgproc220.lib opencv_highgui220.lib

    配置属性-字符集修改为使用“多字节字符集” (由于2008默认是以Unicode字符集编译的)

 

不同版本的配置问题暂时解决了,还是转发一下具体的新版本改进吧

 

===========================================================================

疯子007童鞋翻译了opencv 2.2的官方网站 ,在还没有得到允许的情况下我就转载了过来,让我们掌声感谢疯子007 童鞋

 

总体修改和改进:

  • 重新组织库结构,用较详细,更小的模块来取代cxcore, cv, cvaux, highgui 和 ml库
    • opencv_core – core函数库(基本的结构,架构和线性代数,DFT,xml 和yam i/o接口函数等)
    • opencv_imgproc -图像处理函数库(滤波,高斯模糊,形态学膨胀/腐蚀,线性缩放图像大小,图像几何变化,颜色结构变化,计算直方图等)
    • opencv_highgui – GUI,图像和视频接口函数库
    • opencv_ml -统计机器学习模型函数库(SVM,决策树,级联等)
    • opencv_features2d -二维特征检测器和描述子函数库(SURF,FAST 等,包括一种新的特征描述子匹配结构)
    • opencv_video -动态分析和物体追踪函数库(光流法,移动模板,背景消除)
    • opencv_objdetect -图像目标检测函数库(haar小波 & LBP人脸检测和识别,HOG人检测等)
    • opencv_calib3d -摄像头标定,视觉匹配和三维数据处理函数库
    • opencv_flann -近似最近领域搜索库和OpenCV分装器
    • opencv_contrib - 最新贡献但不是很成熟的函数库
    • opencv_legacy -过时代码,为了后续代码兼容性而存在
    • opencv_gpu -用CUDA来加速一些openCV函数的类库(相对不太稳定,但对openCV开发非常有帮助)

如果你用Cmake 或者pkg-config来进行配置openCV,如果没有任何改动,你的源码编译会正常。否则,你需要修改连接参数(修改库名)和更新头文件路径。

仍然支持使用#include <cv.h>等,但是备注修改为 #include “opencv2/imgproc/imgproc.hpp”等等。

请查看新的c和c++例子文件,你会发现,这样样例的头文件都采用了新的引用格式。如:https://code.ros.org/svn/opencv/trunk/opencv/samples/c/blobtrack_sample.cpp (这是我自己加的,原文没有,便于大家查看)

  • 新格式的分装器覆盖了更多的opencv2.x API,文档和例子将在后面加上。为了采用额外的函数库,你需要numpy

SWIG-不在包含Python分装器

新的函数,特征集

  • core:
    • cv::Matx<T, m, n> 可以增加给定类型,给定大小矩阵

Vec<T, n> 由 Matx<T, n, 1>派生,此类可被用于cv::Mat开销过大时的小矩阵。此操作子可实现Matx 和 Mat相互转换。

    • cv::Mat ,cv::MatND 是同一类型: typedef cv::Mat cv::MatND. 考虑到很多函数没有检查矩阵维数,在用openCV处理3维,4维等高维矩阵时要小心。
    • 实验支持支持2.x/3.x特征 (在Cmake参数选择WITH_EIGEN2). 同时,可以实现Eigen2 matrices和cv::Mat相互转换。详情查看modules/core/include/opencv2/core/eigen.hpp.
    • cv::Mat 支持”<<”操作。详情查看  opencv/samples/cpp/cout_mat.cpp.
    • cv::exp ,cv::log由于SSE2的优化,速度更快
  • imgproc:
    • 颜色转换函数被重写;
      • RGB->Lab & RGB->Luv 得到明显改善。函数假设sRGB输入颜色空间(比如,gamma=2.2),如果你想要原始线性RGB->L**转换 ,采用CV_LBGR2LAB
      • VNG 算法增加了Bayer->RGB。虽然比简单迭代算法慢了很多,但是更详细的图像信息
      • 对8位图增加了RGB->HSV/HLS 转换函数 ,这里H通道采用完整的 0..255 区域,而不是原来的0..179区域。转换代码为CV_RGB2HSV_FULL等。
      • initUndistortRectifyMap为多角度摄像头增添了专用变量: initWideAngleProjMap()
  • features2d:

C++样例:

      • descriptor_extractor_matcher.cpp –采用关键点和描述子 从场景中查找物体
      • generic_descriptor_matcher.cpp – 在物体上采用变动,可以使描述子计算不必太精确。
      • bagofwords_classification.cpp –一个用这种架构处理VOC下载的数据的例子,VOC数据集:http://pascallin.ecs.soton.ac.uk/challenges/VOC/
      • Ethan Rublee集成了由Michael Calonder提出的最新更快的关键点描述子BRIEF。例子请查看opencv/samples/cpp/video_homography.cpp
      • SURF 关键点检测子采用TBB (此模块由 imahon 和yvo2m开发)进行并行计算
  • objdetect:
    • LatentSVM 物体检查子,应用于P. Felzenszwalb的算法,由Nizhniy Novgorod State University (NNSU) team开发.详情请查看opencv/samples/c/latentsvmdetect.cpp
  • calib3d:
    • 一种新的合理的标定模型:

x’ = x*(1 + k1 *r2 + k2 *r4 + k3 *r6 )/(1 + k4 *r2 + k5 *r4 + k6 *r6 ) + <tangential_distortion for x>,

y’ = y*(1 + k1 *r2 + k2 *r4 + k3 *r6 )/(1 + k4 *r2 + k5 *r4 + k6 *r6 ) + <tangential_distortion for y>

被引入。对广角镜头的摄像头标定很有用,因为增加的参数可以优化你所提供数据和增加估计这些数据的鲁棒性。 或者可以简单的初始化畸变向量为0,并 且 CV_CALIB_RATIONAL_MODEL +CV_CALIB_FIX_K3 + CV_CALIB_FIX_K4 + CV_CALIB_FIX_K5 或 者其他连接去选择去增强或者取消一些系数

    • 增加校正三目摄像头(三目在同一水平线上),详情请查看 samples/cpp/3calibration.cpp
  • ml:
    • 引入由NNSU工作组开发的梯度级联树模型
  • highgui:
    • 增加支持 Qt 后台开发,源于由Yannick Verdie完成的GSoC 2010工程。后台开发有一些新特征没有体现,如采用TTF字体的文字翻译 ,独立的控制面板,包括滚动条,按钮,单选按钮,复选按钮,大小变化,图像显 示区,highgui 窗体, “保存”等等。详情请看Yannick在youtube视频演示新特征:http://www.youtube.com/user/MrFrenchCookie#p/u
    • 新的API被引入: http://opencv.willowgarage.com/documentation/cpp/highgui_qt_new_functions.html ,如果你机器上有 Qt SDK (或者 libqt4 开发包),可以采用新的API,并且采用QT编译OpenCV (pass-DWITH_QT=ON to CMake; 注意结果,确认Qt为GUI后台编译)
    • 支持16位和LZW-压缩TIFFs
    • 支持Linux环境下IEEE1394 模式的摄像头
  • contrib:
    • 增加Marius Muja,Antonella Cascitelli, Marco Di Stefano ,Stefano Fabri开发的斜面匹配算法. 详情查看 samples/cpp/chamfer.cpp
  • gpu:
    • 这一部分是OpenCV的全新部分,由NVidia开发并支持。注意,此开发包处于测试阶段,所以在开发时请注意和关注OpenCV SVN 的更新。

在采用gpu,需要安装最新的 NVidia CUDA SDK ,并且采用CUDA 编译OpenCV (-DWITH_CUDA=ON CMake flag).所有函数采用cv::gpu namespace命名空间。完整的函数和类在opencv/modules/gpu/include/opencv2/gpu/gpu.hpp,下面 是 API中一些主要组成部分:

    • 图像计算,滤波操作,形态学,几何变换,直方图计算
    • 立体视觉匹配算法:块匹配, Belief Propagation 和Constant-Space Belief Propagation.
    • 基于HOG物体检查子。It runs more than order of magnitude faster than the CPU version!
      • See opencv/samples/gpu
  • python bindings:
    • 大量 OpenCV 2.x 函数被转换为Python 语言。

这些新的分装需要安装numpy (请查看http://opencv.willowgarage.com/wiki/InstallGuide ).

同理,C++ API,在python环境下,不需要定位输出数组,他们会自动由相互函数创建,下面是一个小例子:

§       import cv

§

§       a=cv.imread(“lena.jpg”,0)

§       b=cv.canny(a, 50, 100, apertureSize=3)

§       cv.imshow(“test”,b)

§       cv.waitKey(0)

在例子中, a和 b 是普通 numpy 数组,所以OpenCV 函数完全支持numpy 和 scipy

PS.在你用opencv2.2的时候,记得库已经不是原来的库的,记得换库

 

参考:http://www.cvchina.info/2010/12/13/chinese-opencv/

 

 

========================================================================

再写一下后来发现的更换的函数吧

#include <cvaux.h>改为

#include "opencv2/video/background_segm.hpp"

当然,还要在设置那里加入opencv_video220.lib。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值