opencv配置

//**************************************关于使vs可混合2.与3.的使用配置**********************************************//
针对调试模式:
1.先配置好opencv2. 在Microsoft.Cpp.Win32.user
2.添加属性表,进行opencv3.的设置,或者添加已经设置好的属性表到某工程的路径下,包括:头文件包含路径、库路径和链接的dll路径。
注:属性表分debug和release版,此处只设置debug版

注:如果要编译release版的程序,可再新建release版的属性表,因为这是继承关系,所以不会相互影响,注意链接的dll的变化


//**************************************头文件说明**********************************************//

//****include用法****//
//#include<././.>  是包含编译器自身所带的头文件,或者是PATH的环境变量名所代表的路径下中能找到的头文件,他们都属于“系统目录”,编译时会先在系统目录里搜索头文件,如果找不到才会在源代码所在目录搜索。。
//#include "..." 是找当前源代码目录,如果未找到则去系统默认目录查找,通常用于包含程序作者自己编写的头文件!!如:#include "videoInput.h"
//如果你引用的头文件在其它文件夹,最好设置一下PATH的变量或者在编译平台的属性设置中带上你的头文件路径(一般选择后者这种方式配置第三方库的头文件,而path路径配置第三方库编译好的lib路径)。这样方便程序移植。

//****包含opencv第三方引用库的用法****//
//注意:用高版本opencv时要用,由于新声明的好多东西在CV空间中,所以在VS编写代码时要添加:using namespace cv;
//#include <opencv2/opencv.hpp>表示涵盖了opnecv1.0和opencv2.0版本的核心头文件,可在工程文件的外部依赖项中查看。注意:与opencv2属同一级的opencv文件夹包含的是头文件并不含真正的类及函数声明内容,而只是指定到了opencv2文件夹下各文件夹下的头文件
//另外,之所以有opencv文件夹,是因为老版本的工程文件一般是用#include"cv.h“,又由于该1.0版本头文件都在opencv文件夹里,所以为向下兼容老版本,在属性页设置include目录时,也要写:**\opencv\build\include;并且2.0版本已把1.0低版本有真正内容的头文件放入了opencv文件夹下
#include <opencv2/opencv.hpp>//之所以没写头文件的完全路径,是因为在编译平台工程的属性页设置了库文件的一些路径,这样在main中写代码时,编译器可以认出代码的含义,以及编译的时候会去完全路径下提取真正意义的头文件进行编译

//****包含其它引用库的含义说明****//
//#include <stdio.h>//C 标准库头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。
//#include <iomanip>//setfill,setw,setbase,setprecision等等,I/O流控制头文件,就像C里面的格式化输出一样,setw( n ) 设域宽为n个字符,setfill( 'c' ) 设填充字符为c,std::cout << "[" << std::setw(6) << std::setfill('0') << "AAAA" << "BBBB" << "]";[00AAAABBBB]可见"AAAA"被扩展成了6个字符宽度,而BBBB没有被扩展;因为std::setw只对紧跟着的输出有效, 即只对输出"AAAA"有效,而对"BBBB"输出无效。
//#include <sstream>//继承自<iostream>可用stringstream str;和str..str(),<sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。
//#include <stdlib.h> //头文件即standard library标准库头文件 ,里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。
//说明:所有C++库都要含有一条名字空间声明才可以,且C++库基础上形成了STL模板库文件,标准模板库就是类与函数模板的大集合。STL共有6种组件:容器6种,容器适配器,迭代器,算法,函数对象和函数适配器。所有的模板库的文件都没有后缀
//注意:#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。还要注意的是:在VS编写代码时要添加:using namespace std;
//#include <iostream> //#include<iostream.h>是在旧的标准C++中使用。在新标准中,用#include<iostream>。iostream 的意思是输入输出流。
//#include <string> //C++系统提供的一个模板类,封装了常用的字符串操作。除此外,还有要引入std名空间(using namespace std;//引入整个名空间),或者在当前名空间声明string(using std::string;//只声明string本身,但需要以std::string形式使用)。
//#include <vector>//属于STL库模板库的一种容器类,这是C++里包含的东西写库的人为了和标准C和C++库区分开,所有的模板库的文件都没有后缀



//**************************************关于opencv2.与opencv3.的区别**********************************************//

/*
#include <opencv2/xfeatures2d/nonfree.hpp> //或用#include <opencv2/xfeatures2d.hpp>要想在OpenCV3.0+中直接使用SIFT, SURF算法,需要现安装扩展模块opencv_contrib。这两个算法都在这个扩展模块的xfeatures2d模块里,BFMatcher matcher,也在。
//调用方式:cv::Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();//且调用方法用->,如surfDetector->detect(image01Frame, keyPoint1);不可以再用surfDetector.detect(image01Frame, keyPoint1);

#include "opencv2/features2d/features2d.hpp"   //ORB在此头文件,FlannBasedMatcher也实际在该头文件
#include "opencv2/nonfree/features2d.hpp"//opencv249中有该路径,SurfFeatureDetector和SiftFeatureDetector实际在该头文件中,3.0以上无此路径 ,也不再有该类名的调用,
#include "opencv2/legacy/legacy.hpp"         //BruteForceMatcher实际在该头文件中  
*/


//**************************************关于opencv2.与自编译的opencv3.的依赖项**********************************************//
//编译调试版为在链接-输入-依赖项中写如下:
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib

//编译release版为在在该工程的属性的release项下,添加属性表,在属性表的项中:链接-输入-依赖项,默认按父类继承,在其中写如下:
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib


关于opencv3.2+contiopencv_contrib所编译库配置信息,依赖项如下:

debug库:
opencv_aruco320d.lib
opencv_bgsegm320d.lib
opencv_bioinspired320d.lib
opencv_calib3d320d.lib
opencv_ccalib320d.lib
opencv_core320d.lib
opencv_datasets320d.lib
opencv_dnn320d.lib
opencv_dpm320d.lib
opencv_face320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_fuzzy320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_line_descriptor320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_optflow320d.lib
opencv_photo320d.lib
opencv_plot320d.lib
opencv_reg320d.lib
opencv_rgbd320d.lib
opencv_saliency320d.lib
opencv_shape320d.lib
opencv_stereo320d.lib
opencv_stitching320d.lib
opencv_structured_light320d.lib
opencv_superres320d.lib
opencv_surface_matching320d.lib
opencv_text320d.lib
opencv_tracking320d.lib
opencv_ts320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
opencv_xfeatures2d320d.lib
opencv_ximgproc320d.lib
opencv_xobjdetect320d.lib
opencv_xphoto320d.lib


//编译release版为在在该工程的属性的release项下,添加属性表,在属性表的项中:链接-输入-依赖项,默认按父类继承,在其中写如下:
release库:
opencv_aruco320.lib
opencv_bgsegm320.lib
opencv_bioinspired320.lib
opencv_calib3d320.lib
opencv_ccalib320.lib
opencv_core320.lib
opencv_datasets320.lib
opencv_dnn320.lib
opencv_dpm320.lib
opencv_face320.lib
opencv_features2d320.lib
opencv_flann320.lib
opencv_fuzzy320.lib
opencv_highgui320.lib
opencv_imgcodecs320.lib
opencv_imgproc320.lib
opencv_line_descriptor320.lib
opencv_ml320.lib
opencv_objdetect320.lib
opencv_optflow320.lib
opencv_photo320.lib
opencv_plot320.lib
opencv_reg320.lib
opencv_rgbd320.lib
opencv_saliency320.lib
opencv_shape320.lib
opencv_stereo320.lib
opencv_stitching320.lib
opencv_structured_light320.lib
opencv_superres320.lib
opencv_surface_matching320.lib
opencv_text320.lib
opencv_tracking320.lib
opencv_ts320.lib
opencv_video320.lib
opencv_videoio320.lib
opencv_videostab320.lib
opencv_xfeatures2d320.lib
opencv_ximgproc320.lib
opencv_xobjdetect320.lib
opencv_xphoto320.lib













////////////////////////////****其他编码项说明****////////////////////////////////////
//1.#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//隐藏控制台窗口
//2.对于下面这种main写法,运行程序的方式为:从命令行运行,可按住shift,同时右键点击该工程的Debug文件夹,选择“在此处打开命令窗口”:输入类似test e:\test.jpg,可得运行结果

    int main( int argc, char** argv )
    { 
        if( argc != 2) 
        {
         cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
         return -1;
        }
        。。。。
    }

  • 1

猜你喜欢

转载自blog.csdn.net/jaccen/article/details/79447555