Qt 5.3 下OpenCV 2.4.11 开发(5)最高效的像素引用
OpenCV 提供一个函数 getTickCount() ,能够用来測量一段代码的执行时间。另一个函数 getTickFrequency() 用来返回每秒内的时钟周期。代码操作例如以下:
double duration;
duration = static_cast<double>(getTickCount());
colorReduce(src);
duration = static_cast<double>(getTickCount()) - duration;
duration /= getTickFrequency();//执行时间以ms为单位
通过时间计算函数。对上小节中的像素引用方法做出对照。终于得出运算速度最快的 colorReduce() 函数。代码例如以下:
#include <QCoreApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp> using namespace cv; void colorReduce(Mat &source, int div = 64)
{
int row = source.rows;
int rowN = source.cols;
if ( source.isContinuous() )//检測图像内存是否连续
{
rowN = rowN * row;
row = 1;
} for ( int j = 0; j < row; j ++ )
{
uchar* data = source.ptr<uchar>(j);
for ( int i = 0; i < rowN; i ++ )
{
*data = *data/div*div + div/2;
data++;
*data = *data/div*div + div/2;
data++;
*data = *data/div*div + div/2;
data++;
}
}
} int main()
{
Mat src = imread("lena.jpg",1);
colorReduce(src);
namedWindow("src",0);
imshow("src",src);
waitKey(0);
return 0;
}
Qt 5.3 下OpenCV 2.4.11 开发(5)最高效的像素引用的更多相关文章
- Qt 5.3 下OpenCV 2.4.11 开发(0)图像处理基本概念
1.普通情况下的RGB彩色图像:它的每一个像素点都是由三个通道组成,即红色(R).绿色(G)和蓝色(B).8位三通道彩色图像就是每一个像素中每一个通道的取值范围都是 0~255(即二进制下的8位数), ...
- python 之django (一) Windows环境下Django 1.6.11开发环境搭建(简易版)
转自 https://www.cnblogs.com/kkddij/p/4397163.html 需要安装如下部件: python 2.6.6 pip(最新版即可) Django 1.6.11 PyC ...
- Qt 5.4 OpenCV 2.4.11 Win 32 Configuration
Download CMake 2.8.2 Download OpenCV 2.4.11 Download Qt 5.4 Highly improtant note: The installation ...
- 玩了下opencv的aruco(python版)
简单的玩了下opencv里头的aruco,用的手机相机,手机装了个 ip摄像头,这样视频就可以传到电脑上了. 首先是标定,我没打印chessboard,直接在电脑屏幕上显示,拍了17张,大概如下: 又 ...
- Python下opencv使用笔记(图像频域滤波与傅里叶变换)
Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654 收藏 展开 本文转载自 https://blog ...
- Qt creator中配置opencv win7 64bit
配置方法的原文来自https://www.librehat.com/qt-5-2-vs2012-opencv-2-4-7-dev-environment-setup-tutorial/. 补充,在张静 ...
- Android下OpenCV的环境搭建
目录(?)[-] 前言 系统环境 相关工具 Android ADT环境搭建 Android SDK环境变量的配置 Android NDK的安装与配置 OpenCV for Android 环境搭建 基 ...
- imread() not working in OpenCV 2.4.11 Debug mode
The OpenCV function imread() not working in OpenCV 2.4.11 Debug mode of VS2010 under Win32, the way ...
- Linux下安装mysql5.6.11(找点有用的信息太费劲)(转)
Linux下安装mysql5.6.11(找点有用的信息太费劲) (2013-04-25 10:25:09) 1.申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务 ...
随机推荐
- java源码之TreeMap
Map的单元是对键值对的处理,之前分析过的两种Map,HashMap和LinkedHashMap都是用哈希值去寻找我们想要的键值对,优点是理想情况下O(1)的查找速度. 那如果我们在一个对查找性能要求 ...
- struct和typedef
struct Test { int i; }; 解析:此处声明一个Test的结构体. 使用:在C语言中:struct Test t(此处的struct不可省略),在C++中:Test t(能够省略st ...
- php扩展之 pdo_mysql.so
总结:新搭编译安装的 nginx+php+mysql环境,执行之前开发的项目遇到了没有安装pdo的问题 1.进入到php5的源代码包里面,ext以下.找到pdo_mysql目录 首先运行:/usr/l ...
- 5分钟学会 CSS Grid 布局
欢迎加入前端交流群交流知识&&获取视频资料:749539640 这是一篇快速介绍网站未来布局的文章. Grid 布局是网站设计的基础,CSS Grid 是创建网格布局最强大和最简单的工 ...
- sql/plus无法显示数据库问题
登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files ( ...
- 滚动监听 after选择器
一.如何实现滚动到一定位置将内容固定在页面顶部 window.onscroll=function(){ //滚动的距离,距离顶部的距离 var topScroll =document.body.scr ...
- oc语言的特点
oc语言的特点分为以下几个方面: 1.运行时: 2.block闭包: 3.内存管理: 4.大中枢派发: 一.运行时的基础是isa 类结构:由clang编译前端支撑. 从它衍生出以下几个特征: 1.消息 ...
- + (void)initialize vs 静态构造方法
在继承体系中,多个子类的引用,父类缺省执行一次: 特殊情况: 1)子类没有实现.调用父类方法: 2)子类显示调用父类: 3)存在分类实现,分类实现覆盖本体. Initializes the class ...
- FCC高级编程篇之Validate US Telephone Numbers
Validate US Telephone Numbers Return true if the passed string is a valid US phone number. The user ...
- 创建一个 Django 项目
一. 创建项目 其中: 确认项目是否创建成功: 在 manage.py 目录上运行 python manage.py runserver server 启动后,在浏览器访问 http://127.0. ...