
opencv
文章平均质量分 61
Tongji_joie
可能会成为程序猿的狗狗狗
展开
-
opencv学习笔记(一)cv::mat
下面的程序用来测试cv::Mat数据结构的不同属性:#include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>//测试函数创建一个图像cv::Mat function(){//创建图像cv::Mat ima(500,500,CV_8...原创 2018-07-25 15:40:35 · 1283 阅读 · 0 评论 -
opencv学习笔记(三)指针扫描图像
准备工作 为了说明图像扫描的过程,要先减少图像中颜色的数量。彩色图像由三通道像素组成,RGB组成,因此颜色总数为256*256*256,即超过1600万种颜色,为了降低分析的复杂程度,有时候需要减少图像中颜色的数量。本文介绍其中一种方法:把RGB空间细分到大小相等的方块中,例如,把每张颜色的数量减少到1/8,颜色总数就变成了32*32*32。将就图像中的每个颜色值划分到一个方块,该方块的中...原创 2018-07-30 00:07:46 · 678 阅读 · 1 评论 -
opencv学习笔记(四)迭代法扫描图像
序言在面向对象编程时,通常用迭代器对数据集合进行循环遍历,迭代器是一种类,专门用于遍历集合的每个元素,隐藏了遍历过程的具体细节。信息隐藏原则的应用,使得扫描集合的过程变得容易且安全,opencv也提供了cv::Mat的迭代器类,并且与c++STL中的标准迭代器兼容。准备工作使用笔记(三)中的减色程序作为例子。如何实现要得到cv::Mat实例的迭代器,首先创建一个cv::MatI...原创 2018-07-30 11:29:38 · 846 阅读 · 0 评论 -
opencv学习笔记(二)操作像素
序言人类的视觉系统是三原色的,视网膜上有三种类型的视锥细胞,它们将颜色信息传递给大脑。这意味着对于彩色图像,每个像素都要对应三个数值。在摄影和数字成像技术中,常用的主颜色通道是红色、绿色和蓝色,因此每3个8位数值组成矩阵的一个元素。准备工作为了说明如何直接访问像素值,我们创建一个简单的函数,用它在图像中加入椒盐噪声(salt-and-pepper noise)。顾名思义,椒盐噪是一个专...原创 2018-07-28 11:33:46 · 320 阅读 · 0 评论 -
opencv学习笔记(七)用类处理彩色图像
主要内容: 在算法设计中使用策略模式; 用控制器设计模式实现功能模块间通信; 转换颜色表示法; 用色调、饱和度、亮度表示颜色在算法设计中使用策略模式:策略设计模式的目的就是把算法封装进类。封装后,算法之间互相替换,或者把几个算法组合起来进行更复杂的处理,都会更加容易而且这种模式能够尽可能地将算法的复杂性隐藏在一个直观的编程接口之后,因而有利于算法的部署。准备工...原创 2018-08-10 00:29:22 · 530 阅读 · 0 评论 -
opencv学习笔记(五)编写高效的图像扫描循环
如何实现为了衡量函数或者代码段的运行时间,Opencv有一个非常实用的函数,即为cv::getTickCount(),该函数返回从最近一次电脑开机到当前的始终周期数。也就是对系统时钟systick的一个测量,因为我们希望得到以秒为单位的代码运行时间,所以要使用另一个方法,即为cv::getTickFrequency(),这个方法返回去每秒的时钟周期数。为了获得某个函数或代码段的运行时间,通常需...原创 2018-08-01 10:52:41 · 518 阅读 · 0 评论 -
opencv学习笔记(六)锐化图像
准备工作它基于拉普拉斯算子(将在第6章中讨论)。在图像处理领域有一个众所周知的结论:如果从图像中减去拉普拉斯算子部分,图像的边缘就会放大,因而图像会变得更加尖锐。用以下方法计算锐化的数值:sharpened_pixel= 5*current-left-right-up-down;如何实现图像扫描中使用了三个指针,一个表示当前行,一个表示上面的行,另外一个表示下面的行。另外,...原创 2018-08-01 15:12:32 · 1106 阅读 · 0 评论