opencv 不同版本的lib引用

来源:互联网 发布:淘宝上买电动车可靠吗 编辑:程序博客网 时间:2024/06/05 02:48

/** 根据自己机器上的OpenCV版本定义宏            
  * 例如使用OpenCV 2.1,则定义宏RC_OPENCV_2_1_0;
  * 使用OpenCV 2.2,则定义宏RC_OPENCV_2_2_0;
  * 以此类推
  * 如果使用debug版本,定义宏 _DEBUG, release 版本不需要定义宏
  * 注意opencv的不同版本需要包含的头文件时不一样的
  */
//#define _DEBUG
#define RC_OPENCV_2_3_1


#ifdef _DEBUG


#ifdef RC_OPENCV_2_1_0
#pragma comment( lib, "cxcore210d.lib" )
#pragma comment( lib, "cv210d.lib" )
#pragma comment( lib, "highgui210d.lib" )
#include <cv.h>
#include <highgui.h>
#endif


#ifdef RC_OPENCV_2_2_0
#pragma comment( lib, "opencv_core220d.lib" )
#pragma comment( lib, "opencv_highgui220d.lib" )
#pragma comment( lib, "opencv_imgproc220d.lib" )
#endif 


#ifdef RC_OPENCV_2_3_1
#pragma comment( lib, "opencv_core231d.lib" )
#pragma comment( lib, "opencv_highgui231d.lib" )
#pragma comment( lib, "opencv_imgproc231d.lib" )




#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/opencv.hpp>


#include <opencv2/ts/ts.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/calib3d/calib3d.hpp>


using namespace cv;
#endif 


#else


#ifdef RC_OPENCV_2_1_0
#include <cv.h>
#include <highgui.h>
#pragma comment( lib, "cxcore210.lib" )
#pragma comment( lib, "cv210.lib" )
#pragma comment( lib, "highgui210.lib" )
#endif


#ifdef RC_OPENCV_2_2_0
#pragma comment( lib, "opencv_core220.lib" )
#pragma comment( lib, "opencv_highgui220.lib" )
#pragma comment( lib, "opencv_imgproc220.lib" )
#endif


#ifdef RC_OPENCV_2_3_1
#pragma comment( lib, "opencv_core231.lib" )
#pragma comment( lib, "opencv_highgui231.lib" )
#pragma comment( lib, "opencv_imgproc231.lib" )


#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/opencv.hpp>


#include <opencv2/ts/ts.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/calib3d/calib3d.hpp>


using namespace cv;


#endif


#endif




#include <iostream>
using namespace std;
int main( int argc, char** argv )
{
    /** 构造一个10行10列、深度为32位、3通道的矩阵,矩阵元素初始化为10 */
    cv::Mat matOrigin( 10, 10, CV_32FC3, cv::Scalar(10) );


    /** 转换为深度为8位、3通道的矩阵 */
    cv::Mat mat8UC3Converted;
    matOrigin.convertTo( mat8UC3Converted, CV_8UC3, 1, 0 );


    if ( CV_8UC3 == mat8UC3Converted.type() )
    {
        std::cout << "mat8UC3Converted 转换成功。" << std::endl;
    }
    else
    {
        std::cout << "mat8UC3Converted 转换失败。" << std::endl;
    }


    /** 转换为深度为8位、1通道的矩阵 */
    cv::Mat mat8UC1Converted;
    matOrigin.convertTo( mat8UC1Converted, CV_8UC1, 1, 0 );


    if ( CV_8UC1 == mat8UC1Converted.type() )
    {
        std::cout << "mat8UC1Converted 转换成功。" << std::endl;
    }
    else
    {
        std::cout << "mat8UC1Converted 转换失败。" << std::endl;
    }


    system( "pause" );


    return 0;
}
原创粉丝点击