OpenCV之像素访问优化
来源:互联网 发布:数据分析师入门书籍 编辑:程序博客网 时间:2024/05/22 07:46
优化基本原则:
1.减少多层循环的使用
2.尽量使用位运算
基于以上原则,可将之前几篇博文中介绍的Color Reduce算法代码改为:
voidcolorReduce5(Mat&image,intn=6) {
intnl=image.rows;
intnc=image.cols;
intdiv= (int)pow(2.0f,n);
ucharmask= 0xFF<<n;
if(image.isContinuous())
{
nc=nl*nc;
nl=1;
}
for(intj=0;j<nl;j++)
{
uchar*data=image.ptr<uchar>(j);
for(inti=0;i<nc;i++) {
*data++= *data&mask+div/2;
*data++= *data&mask+div/2;
*data++= *data&mask+div/2;
}
}
}
执行效率测试对比
测试环境:
图像:500*338pixel
CPU:Pentium(R) Dual-Core CPU E5800 3.20GHz
测试结果:
ColorReduce10.00225389msColorReduce20.00215909msColorReduce30.00180068msColorReduce4
0.0830474ms
ColorReduce50.00131263ms
- OpenCV之像素访问优化
- OpenCV之像素访问(1)
- OpenCV之像素访问(2)
- OpenCV之像素访问(3)
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- OpenCV基础篇之像素访问
- 天天记录 - Android refreshDrawableState源码及流程简单分析
- Hoj 1604 Cable Master
- Linux命令-screen
- 如何确保项目流程被贯彻和执行
- (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
- OpenCV之像素访问优化
- Spring.jar包详解
- java获取中文拼音首字母工具类
- socket地址解析相关的几个函数inet_addr,inet_ntoa,gethostname,gethostbyname
- mysql 基本命令 及懵了两个多小时的坑
- 怎样卸载sqlserver2005
- 模板方法
- (二)洞悉linux下的Netfilter&iptables:内核中的ip_tables小觑
- DOM学习完毕笔记