在vs2008中配置OpenCV2.2
1、下载OpenCV2.2:http://www.opencv.org.cn/index.php/Download
2、下载后解压缩OpenCV-2.2.0-win.zip;
3、下载CMake:http://www.cmake.org/cmake/resources/software.html
4、安装CMake;
5、运行cmake-gui,在where is the source code中填入刚才(2)中解压缩后的文件路径如D:/OpenCV2.2,在where to build the binaries中填入编译时需要存放的路径如D:/OpenCV2.2/vs2008;
6、点击Configure,在弹出的对话框中选择Visual Studio 9 2008;
7、如果有红色框显示,继续点击Configure;
8、点击Generate;
9、上述步骤完成之后,在vs2008文件夹中,就会看到有OpenCV.sln文件;
10、使用VS2008打开OpenCV.sln文件,在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build";
11、在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build";
12、将D:/OpenCV2.2/vs2008/bin加入Windows系统环境变量Path中,重启;
13、为VC++ 2008配置OpenCV环境:
选择菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
Show directories for选择include files,加入目录 D:/OpenCV2.2/vs2008/include
D:/OpenCV2.2/vs2008/include/opencv2
Show directories for选择library files,加入目录 D:/OpenCV2.2/vc2008/lib
14、新建项目后,需要配置一下属性,在[链接器 LINKER]的[输入INPUT]中:
为项目的Debug配置增加依赖的库:opencv_core220d.lib opencv_imgproc220d.lib opencv_highgui220d.lib
为项目的Release配置增加依赖的库:opencv_core220.lib opencv_imgproc220.lib opencv_highgui220.lib
配置属性-字符集修改为使用“多字节字符集” (由于2008默认是以Unicode字符集编译的)
在OpenCV2.2中,不存在cv.h或highgui.h头文件,取而代之的是#include <opencv.hpp>
///
转自:http://blog.sina.com.cn/s/blog_661159d50100nr29.html
总体修改和改进:
- 重新组织库结构,用较详细,更小的模块来取代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分装器
- OpenCV现在支持Android开发(GSoC 2010 工程),一些样例可以在http://opencv.willowgarage.com/wiki/Android 找到
- 完整全新的opencv_gpu加速器模块由NVidida开发支持,详细请看下面。
新的函数,特征集
- 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:
- 引入关键点检测,计算描述子和匹配的统一架构。先前的一些可用和新的监测子和描述子,比如SURF,Fast, StarDetector 等,被分装在这个架构中。这个架构的关键的特点(除了为不同检测子和描述子统一的API)是他为图像匹配和基于纹理的物体检查提供了高层工具,详情请看http://opencv.willowgarage.com/documentation/cpp/features2d_common_interfaces_of_feature_detectors.html
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和 b 是普通 numpy 数组,所以OpenCV 函数完全支持numpy 和 scipy
a=cv.imread(“lena.jpg”,0)
b=cv.canny(a, 50, 100, apertureSize=3)
cv.imshow(“test”,b)
cv.waitKey(0)
相关文章:

开发者,什么是你真正关心的问题?| AI ProCon 2019
2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…

C语言程序的结构
1.一个程序由一个或多个源程序文件组成。 a.预处理指令 b.全局声明 c.函数定义 2.函数是C程序的主要组成部分。 3.一个函数包括两个部分。 a.函数首部 int 函数类型 max 函数名 (int 函数参数类型 x, 函数参数名 int 函数参数类型 y…
flask 核心 之 应用上下文 及 请求上下文
Werkzeugs 是 Flask 的底层WSGI库。什么是WSGI? 一段简单的app: def dispath_request(self, request):return Response(Hello World!)def wsgi_app(self, environ, start_response):request Request(environ)response self.dispath_request(request)re…

vs2008中常见错误解决方法汇总
1、error C2859 vc90.idb is not the idb file that was used when this precompiled header was created。 解决方法:选中工程-->点击右键属性-->Configuration Properties-->C/C-->Output Files-->Program Database File Name中的$(IntDir)/vc90.p…

加速AI应用落地,英特尔AI 2.0的进阶之道
人工智能模型的复杂度不断增加,对内存的需求也越来越大。深度学习的进一步发展需要解决内存限制问题,而当前的解决方案无法利用所有可用计算,业内人士逐渐意识到需要专用芯片来支持深度学习训练和推理。英特尔则在人工智能方面提供优越的硬件…

MySQL基础之 恢复数据和数据库迁移
1、mysql命令或者source命令恢复数据 这两个命令在进行恢复数据的时候要检查是否创建数据库。如果数据库不存在,则恢复失败。 数据库迁移 1、相同版本的mysql数据库之间的迁移。 mysqldump -h host1 -uroot -ppwd --all-databases | mysql -h host2 -uroot -ppw…

.Net 文件流 System.IO之Stream
转自 :http://www.cnblogs.com/yukaizhao/archive/2011/07/28/stream.html Stream在msdn的定义:提供字节序列的一般性视图(provides a generic view of a sequence of bytes)。这个解释太抽象了,不容易理解;…

Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用?
作者 | Rafael Mller , Simon Kornblith, Geoffrey Hinton译者 | Rachel责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】损失函数对神经网络的训练有显著影响,也有很多学者人一直在探讨并寻找可以和损失函数一样使模型效果更好的函数…

WaitForSingleObject和WaitForMultipleObjects用法
转自:http://www.360doc.com/content/10/0512/09/1072296_27178529.shtml 等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。这些等待函数中最常用的是WaitForSingleObject: DWORD WaitForSingleObject(HANDLE hObject, DW…

【面试必问】支撑百万并发的IO多路复用技术你了解吗?
多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理。对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输;由于上层应用协议的制订问题,导致了很多传统服务并不能支持多路复…

DllMain already defined in dllmain.obj错误
错误 uafxcw.lib(dllmodul.obj) : error LNK2005: DllMain already defined in dllmain.obj 修改: 去掉宏定义 _USRDLL 转载于:https://blog.51cto.com/co63oc/1122378

典型的数字水印软件
转自:http://blog.csdn.net/pastora/archive/2005/04/15/348413.aspx ---- 目前,数字水印软件既有商品化产品,也有供研究用的免费软件。 商品化软件 ----提供商品化数字水印软件的公司主要有以下一些: ----1.Digimar…

AI、5G、小程序、AIoT纷纷迎来高峰,下一步开发者们要怎么办?
2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…

linux第四课
一、配置软件仓库1.yum简介基于rpm软件包的安装部署机制自动解决软件包的依赖关系需要先配置软件仓库2.配置本地的软件仓库a.放入centos7.iso镜像文件到光驱中,确保电源开启b.命令操作# umount /dev/cdrom# ls /mnt# mount /dev/cdrom /mnt# ls /mnt# mkdir -p /rep…

图像处理和图像识别中常用的CxImage函数
1、Load:reads from disk the image in a specific format; 2、Save:saves to disk the image in a specific format; 3、Filter:2D linear filter(图像锐化,可提高图像清晰度); 4、Copy&…

大战三回合:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测
作者 | LAVANYA译者 | 陆离责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】XGBoost、LightGBM 和 Catboost 是三个基于 GBDT(Gradient Boosting Decision Tree)代表性的算法实现,今天,我们将在三轮…

云计算之Docker介绍
1. 百科简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙…

还在纠结垃圾分类问题?带你用Python感受ImageNet冠军模型SENet的强大
作者 | beyondma转载自CSDN博客本月1日起,上海正式开始了“史上最严“垃圾分类的规定,扔错垃圾最高可罚200元。全国其它46个城市也要陆续步入垃圾分类新时代。各种被垃圾分类逼疯的段子在社交媒体上层出不穷。其实从人工智能的角度看垃圾分类就是图像处理…

软件开发流程包含哪些内容
2019独角兽企业重金招聘Python工程师标准>>> 能否开发出一个好的软件,关键是看软件开发前期所做的工作,重点是这个软件有没有一个好的 软件开发流程,因为一个好的软件开发流程关系到到这个软件的成败和最后能达到一个什么的效果&a…

在对话框中应用CScrollView显示图像
1、用vs2008创建一个基于对话框的工程DialogView; 2、添加一个新类CMyDocument,基类为CDocument; 3、添加一个新类CMyView,基类为CScrollView; 4、修改CMyDocument的头文件: #pragma once // CMyDocument …

如何用纯 CSS 创作一个同心圆弧旋转 loader 特效
效果预览 在线演示 按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。 https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。 请用 chrome, safari, edge 打开观看…

Java长见到的面试题,看你能答出几题,就知道自己有多菜了
作者:Java3y前言只有光头才能变强Redis目前还在看,今天来分享一下我在秋招看过(遇到)的一些面试题(相对比较常见的)0、final关键字简要说一下final关键字,final可以用来修饰什么?这题我是在真实的面试中遇到的,当时答得…

数据结构实验之链表一:顺序建立链表
题目描述 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。输入 第一行输入整数的个数N;第二行依次输入每个整数。输出 输出这组整数。示例输入 8 12 56 4 6 55 15 33 62 示例输出 12 56 4 6 55 15…

深度学习在人脸检测中的应用 | CSDN 博文精选
作者 | 梁志成、刘鹏、陈方杰责编 | 唐小引转载自CSDN(ID:csdnnews)在目标检测领域,可以划分为人脸检测与通用目标检测,往往人脸这方面会有专门的算法(包括人脸检测、人脸识别、人脸其他属性的识别等)&…

vs2008中,在OCX控件中应用doc/view基本步骤
1、利用向导创建一个MFC ActiveX Control控件CMyOCX; 2、在工程中加入ActivDoc头文件和执行文件; class CActiveXDocTemplate : public CSingleDocTemplate { enum { IDR_NOTUSED 0x7FFF }; CWnd* m_pParentWnd; CFrameWnd* m_pFrameWnd; C…
常见存储过程分页PK赛——简单测试分析常见存储过程分页速度
数据的分页是我们再熟悉不过的功能了,各种各样的分页方式层出不穷。今天我把一些常见的存储过程分页列出来,再简单地测一下性能,算是对知识的总结,也是对您好想法的抛钻引玉。废话不多说,开始吧~~ 1.首先建立一张测试表…

YOLOv3模型剪枝,瘦身80%,提速100%,精度基本不变
作者 | CV君转载自我爱计算机视觉(ID: aicvml)如果要在实际应用中部署目标检测,你会想到哪项算法?在52CV目标检测交流群里,被提及最多的,恐怕就是YOLOv3了。虽然新出的一些算法号称“完胜”“吊打”某某某算…

Ubuntu开发用新机安装流程
1.SSH安装 Ubuntu缺省已安装客户端,此处安装服务端 sudo apt-get install openssh-server 确认sshserver是否启动 netstat -tlp | grep ssh 或 ps -e | grep ssh 未启动,选择启动 sudo /etc/init.d/ssh start 2.问题解决:ACPI Error:Method p…

人工智能六十年技术简史
出品 | AI科技大本营(ID:rgznai100)作者:李理,环信人工智能研发中心vp,十多年自然语言处理和人工智能研发经验。主持研发过多款智能硬件的问答和对话系统,负责环信中文语义分析开放平台和环信智能机器人的设…

【Android游戏开发二十五】在Android上的使用《贝赛尔曲线》!
首先对于《赛贝尔曲线》不是很了解的童鞋,请自觉白度百科、google等等... 为了方便偷懒的童鞋,这里给个《贝赛尔曲线》百科地址,以及一段话简述《贝赛尔曲线》: 《贝赛尔曲线》白度百科快速地址:http://baike.baidu.co…