OpenCV RGB2LAB执行效率测试
2016-03-31 20:00
453 查看
代码
#include <iostream> #include <vector> #include <opencv2/opencv.hpp> #define ERROR_OUT__ std::cerr<<"[ERROR][File:"<<__FILE__<<"][Line:"<<__LINE__<<"]" #ifndef _DEBUG #define TB__(A) int64 A; A = cv::getTickCount() #define TE__(A) std::cout << #A << " : " << 1.E3 * double(cv::getTickCount() - A)/double(cv::getTickFrequency()) << "ms" << std::endl #else #define TB__(A) #define TE__(A) #endif class Print{ public: static void min_max_loc(cv::Mat &src){ std::vector<cv::Mat> mats; cv::split(src, mats); for (size_t c = 0; c < mats.size(); c++){ double min_val, max_val; cv::Point min_loc, max_loc; cv::minMaxLoc(mats[c], &min_val, &max_val, &min_loc, &max_loc); printf("channel %d, minv %6.6f, maxv %6.6f, minl [%6d, %6d], maxl [%6d, %6d]\n", \ c, min_val, max_val, min_loc.x, min_loc.y, max_loc.x, max_loc.y); } } }; int main(){ cv::Mat image, cielab, cielabf; image.create(720, 1280, CV_8UC3); TB__(__randomu); cv::randu(image, cv::Scalar::all(0), cv::Scalar::all(256)); TE__(__randomu); // warming up cv::cvtColor(image, cielab, CV_BGR2Lab); TB__(__bgr2lab_8UC3); cv::cvtColor(image, cielab, CV_BGR2Lab); cielab.convertTo(cielabf, CV_32FC3); TE__(__bgr2lab_8UC3); Print::min_max_loc(cielabf); image.convertTo(image, CV_32FC3, 1. / 255.); // warming up cv::cvtColor(image, cielabf, CV_BGR2Lab); TB__(__bgr2lab_32FC3); cv::cvtColor(image, cielabf, CV_BGR2Lab); TE__(__bgr2lab_32FC3); Print::min_max_loc(cielabf); return 0; }
测试平台及输出
CPU : i5-4590 @3.3GHz输出:
__randomu : 2.13923ms __bgr2lab_8UC3 : 5.99754ms channel 0, minv 0.000000, maxv 255.000000, minl [ 460, 420], maxl [ 410, 106] channel 1, minv 42.000000, maxv 226.000000, minl [ 170, 27], maxl [ 1260, 43] channel 2, minv 20.000000, maxv 222.000000, minl [ 61, 223], maxl [ 640, 10] __bgr2lab_32FC3 : 17.1545ms channel 0, minv 0.019787, maxv 99.877167, minl [ 460, 420], maxl [ 410, 106] channel 1, minv -86.124870, maxv 97.908821, minl [ 826, 581], maxl [ 181, 276] channel 2, minv -107.861755, maxv 94.271385, minl [ 520, 399], maxl [ 839, 96]
相关文章推荐
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- 基于C++实现kinect+opencv 获取深度及彩色数据
- OpenCV 2.4.3 C++ 平滑处理分析
- Python中使用OpenCV库来进行简单的气象学遥感影像计算
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- Python环境搭建之OpenCV的步骤方法
- Python实现OpenCV的安装与使用示例
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程
- opencv-python学习一--人脸检测
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- OpenCV配置,从来没有这么简单!
- ubuntu下opencv和qt的安装配置
- OpenCV学习笔记(二十五)——OpenCV图形界面设计Qt+VS2008
- 分享一些OpenCV实现立体视觉的经验
- 关于OpenCv图像变换与基本图形检测
- "应用程序正常初始化失败"-0xc0150002 解决办法
- OpenCV->HSV色彩空间