OpenCv实现 颜色空间缩减
2015-09-24 17:23
525 查看
OpenCv实现 颜色空间缩减:
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/core/how_to_scan_images/how_to_scan_images.html
最后那个参数是可选的。如果提供该参数,则图像以灰度格式载入,否则使用彩色格式。在该程序中,我们首先要计算查找表。
这里我们先使用C++的 stringstream 类,把第三个命令行参数由字符串转换为整数。然后,我们用数组和前面给出的公式计算查找表。这里并未涉及有关OpenCV的内容。
另外有个问题是如何计时。没错,OpenCV提供了两个简便的可用于计时的函数 getTickCount() 和 getTickFrequency() 。第一个函数返回你的CPU自某个事件(如启动电脑)以来走过的时钟周期数,第二个函数返回你的CPU一秒钟所走的时钟周期数。这样,我们就能轻松地以秒为单位对某运算计时:
然后我们调用函数 (I 是输入 J 是输出):
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/core/how_to_scan_images/how_to_scan_images.html
how_to_scan_images imageName.jpg intValueToReduce [G]
最后那个参数是可选的。如果提供该参数,则图像以灰度格式载入,否则使用彩色格式。在该程序中,我们首先要计算查找表。
int divideWith; // convert our input string to number - C++ style stringstream s; s << argv[2]; s >> divideWith; if (!s) { cout << "Invalid number entered for dividing. " << endl; return -1; } uchar table[256]; for (int i = 0; i < 256; ++i) table[i] = divideWith* (i/divideWith);
这里我们先使用C++的 stringstream 类,把第三个命令行参数由字符串转换为整数。然后,我们用数组和前面给出的公式计算查找表。这里并未涉及有关OpenCV的内容。
另外有个问题是如何计时。没错,OpenCV提供了两个简便的可用于计时的函数 getTickCount() 和 getTickFrequency() 。第一个函数返回你的CPU自某个事件(如启动电脑)以来走过的时钟周期数,第二个函数返回你的CPU一秒钟所走的时钟周期数。这样,我们就能轻松地以秒为单位对某运算计时:
double t = (double)getTickCount(); // 做点什么 ... t = ((double)getTickCount() - t)/getTickFrequency(); cout << "Times passed in seconds: " << t << endl;
4. 核心函数LUT(The Core Function)¶
这是最被推荐的用于实现批量图像元素查找和更该操作图像方法。在图像处理中,对于一个给定的值,将其替换成其他的值是一个很常见的操作,OpenCV 提供里一个函数直接实现该操作,并不需要你自己扫描图像,就是:operationsOnArrays:LUT() <lut> ,一个包含于core module的函数. 首先我们建立一个mat型用于查表:Mat lookUpTable(1, 256, CV_8U); uchar* p = lookUpTable.data; for( int i = 0; i < 256; ++i) p[i] = table[i];
然后我们调用函数 (I 是输入 J 是输出):
LUT(I, lookUpTable, J);
相关文章推荐
- 003 利用hadoop+hive离线处理日志-方案分析
- centos 7 构造iptables开放80port
- (转)修改ECSHOP前后台的title中的ecshop
- zookeeper集群搭建
- 利用POPAnimatableProperty属性来实现动画倒计时
- Tomcat 6.0/webapps/项目名/WEB-INF/classes下为空解决方案
- centos搭建PHP的常见问题汇总
- 【LeetCode】Expression Add Operators
- nginx rewrite伪静态后产生的错误链接
- tomcat的配置
- 关于System.arraycopy数组复制的一个问题
- Solr+Zookeeper+HDFS+Tomcat 配置一些理解
- centos crontab(定时任务) 使用
- linux下怎么查看ssh的用户登录日志
- 使用Docker Compose创建监控环境
- Linux磁盘读写缓慢问题追踪
- Nginx配置文件详细说明
- Tomcat8多实例安装
- linux环境中的arm程序编辑器eclipse安装及使用方法
- 树莓派+8187L 安装 kali linux 跑pin