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;
}
* 例如使用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;
}
- opencv 不同版本的lib引用
- 引用js,版本不同发现的坑!
- opencv不同版本之间的互操作性
- 兼容不同版本的OpenCV头文件
- 不同版本的python共用一个opencv
- boost库中 不同版本载入lib的方式
- boost库中 不同版本载入lib的方式
- 不同OpenCV版本和不同VS版本之间配置时的注意事项
- 不同OpenCV版本和不同VS版本之间进行配置的注意事项
- jstl在不同servlet版本下的引用
- 一个页面中引用多个不同版本的jquery
- vs在不同版本的opencv之间切换
- 解决VS+opencv中Debug版本与Release版本lib切换的问题
- VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的
- vs2005 引用lib的方法
- DCMTK的Lib 引用顺序
- arcgis engine 不同版本 引用不可用
- 一个项目引用不同版本dll
- 第 5堂作业
- strut2json根据数值返回前台list
- Ubuntu下配置samba实现文件夹共享
- Why Blink and Why not Blink
- javaFX2 漂亮的礼花弹动画
- opencv 不同版本的lib引用
- ffmpeg在windows下视频采集
- CC2530的TinyOS移植之windows篇
- 坑爹啊 vs2012智能提示消失了
- Java类库中File类的renameTo()方法使用说明
- 【黑马程序员】数据导出至Excel(学习笔记)
- hdu_2033_人见人爱A+B_解题报告
- 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
- 注册表的简单操作