opencv 笔记02Core_Scan
来源:互联网 发布:数据挖掘与r语言 源码 编辑:程序博客网 时间:2024/05/28 11:28
1. OpenCV提供了两个简便的可用于计时的函数 getTickCount() 和 getTickFrequency() 。第一个函数返回你的CPU自某个事件(如启动电脑)以来走过的时钟周期数,第二个函数返回你的CPU一秒钟所走的时钟周期数。这样,我们就能轻松地以秒为单位对某运算计时:
2. 图像矩阵的大小取决于我们所用的颜色模型,确切地说,取决于所用通道数。如果是灰度图像,矩阵就会像这样:
而对多通道图像来说,矩阵中的列会包含多个子列,其子列个数与通道数相等。例如,RGB颜色模型的矩阵:
子列的通道顺序是反过来的:BGR而不是RGB。很多情况下,因为内存足够大,可实现连续存储,因此,图像中的各行就能一行一行地连接起来,形成一个长行。连续存储有助于提升图像扫描速度,我们可以使用 isContinuous() 来去判断矩阵是否是连续存储的.
1.高效的方法 Efficient Way
另一种方法:使用data,data会从 Mat 中返回指向矩阵第一行第一列的指针。注意如果该指针为NULL则表明对象里面无输入
2.迭代法 The iterator (safe) method
对于彩色图像中的一行,每列中有3个uchar元素,这可以被认为是一个小的包含uchar元素的vector,在OpenCV中用 Vec3b 来命名。如果要访问第n个子列,我们只需要简单的利用[]来操作就可以。OpenCV的迭代在扫描过一行中所有列后会自动跳至下一行3. 通过相关返回值的On-the-fly地址计算
事实上这个方法并不推荐被用来进行图像扫描,它本来是被用于获取或更改图像中的随机元素。
为避免反复输入数据类型和at带来的麻烦和浪费的时间,OpenCV 提供了:basicstructures:Mat_ <id3> data type. 它同样可以被用于获知矩阵的数据类型4. 核心函数LUT(The Core Function)
在图像处理中,对于一个给定的值,将其替换成其他的值是一个很常见的操作
operationsOnArrays:LUT() <lut> ,一个包含于core module的函数
I 是输入 J 是输出性能表现
结论:推荐LUT批量查改,Efficient、Iterator其次,On-The-Fly随即存储
- opencv 笔记02Core_Scan
- OpenCV笔记
- openCV笔记
- OpenCV笔记
- OpenCV笔记
- opencv笔记
- Opencv笔记
- opencv 笔记
- opencv笔记
- opencv笔记
- opencv笔记
- OpenCV--笔记
- opencv笔记
- OpenCV笔记
- OpenCV笔记
- OpenCV笔记
- OpenCV学习笔记(02) :OpenCV拍摄视频并保存
- opencv笔记02-main函数使用
- s3c2440A操作24C08
- u-boot-2009.08在2440上的移植详解(五)
- 弹珠小程序
- Oracle is #1 in the RDBMS Market Share Worldwide for 2012
- 设计模式之二:观察者模式
- opencv 笔记02Core_Scan
- dialog,activity 屏蔽Home键详解
- 13 Table View javafx
- 拷贝构造函数作用测试
- 在Eclipse中配置tomcat
- Direct3D初学总结
- 科学方法论--信息论、老鼠毒药问题、称球问题(全文)
- java基本概念(一)
- 动态规划intermediate:LA 6042