15     遍历图像中的像素,是先for行数后for列数的,也就是一列一列的遍历,matlab中是从1开始计数,opnecv中采用c语言的从0开始计数。

矩阵归一化:normalize()函数,参数挺多,不过大多都有默认值,不用都写出来,一般要求的图像归一化精简写法为 normalize(InputArray secImage , outputArray dstImage);一个输入,一个输出即可。

16     消除图像中的噪声成分叫做图像的平滑化或滤波操作,信号或图像的能量大部分集中在幅度谱的低频和中频段,而在较高频段,有用的信息经常被噪声淹没,因此一个能降低高频成分幅度的滤波器就能够减弱噪声的影响。Ps:滤波其实就是一个卷积的操作。

三种线性滤波:方框滤波 boxblur函数 boxFilter(src,dst,-1,Size(3,3)); 其中-1表示输出图形采用原图像深度,即src.depth,图像深度表示存储每个像素所用的位数,也用于量度图像的色彩分辨率。Size(3,3)表示3*3的内核大小。boxFilter最少需要这四个参数,少其一都不行。其余参数有默认值一般不与考虑。

均值滤波 blur函数,输出图像的每一个像素是核窗口内输入图像对应像素的平均值,其实就是归一化的方框滤波。 blur(src,dst,Size(3,3)); 主要是领域平均法,即某一点的像素是由除去该点的模板的其他点的平均值代替,故不能很好的保护图像细节,会造成图像变得模糊,不能很好的去除噪声点。

和均值滤波相似的是高斯滤波,只不过高斯滤波不是简单的求其平均值,二是加权平均值。高斯滤波 是用一个模板扫描图像中的每一个像素,用模板确定的领域内的像素的加权平均灰度值去替代模板中心像素点的值,效果明显比均值滤波好了很多。Ps:理解高斯滤波概念,从数学的角度来看,图像的高斯滤波过程就是图像与正态分布做卷积,由于正态分布又叫做高斯分布,所以这项操作才叫做高斯滤波。

GussianBlur(src,dst,Size(5,7),sigmaX,sigmaY); 和前两种滤波不同的是,第三个表示内核大小的参数必须是正数和奇数,或者为0,还需设定高斯核函数在X和Y方向的标准偏差sigmaX、sigmaY。

17     两种非线性滤波器:中值滤波median filter 双边滤波 bilateral filter

图像处理的很多情况下,使用线性滤波更不到更好的效果,例如:噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大的值的时候,用高斯滤波器进行模糊的话,噪声像素是不会被去除的,只是转换为更为柔和但仍然可见的颗粒。

中值滤波:基本思想是用像素点邻域灰度值的中值(中位数)来代替该像素点的灰度值,在去除脉冲噪声、椒盐噪声的同时能保留图像的边缘细节。中值滤波在一定条件下,能克服线性滤波器所带来的图像细节模糊。medianBlur(src,dst,ksize);其中ksize是孔径的线性尺寸,必须是大于1的奇数。

例如:medianBlur(image,out,7);

双边滤波是结合图像的空间邻近度和像素值相似度的一种折中处理,好处是可以做边缘保存。

bilateralFilter(src,dst,d,sigmaColor,sigmaSpace);d表示过滤过程中每个像素邻域的直径,sigmaColor颜色空间滤波器的sigma值,参数值越大,就表明该像素邻域内有越宽广的颜色会被混合在一起,产生较大的半相等颜色区域,sigmaSpace表示坐标空间中滤波器的sigma值,坐标空间的标注方差,数值越大,意味着越远的像素会相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色。

例如:bilateralFilter(image,out,25,25*2,25/2);

18     图像的深度:

图片是由一个个像素点构成的,所有不同颜色的像素点构成了一副完整的图像,计算机存储图片是以二进制来进行的。1bit:用一位来存储,那么这个像素点的取值范围就是0或者1,那么我们看来这幅图片要么是黑色要么是白色。4 bit : 取值范围为 0 到 2 的4次方8 bit : 来存储像素点的取值范围为 0 到 2 的8次方,以此类推,我们把计算机存储单个像素点所用到的bit为称之为图像的深度。bit表示位。

图像的通道:

我们都知道颜色的三元素 Red, Green, Blue. 如果是深度为24=3*8,我们刚好就可以用第一个8位存储Red值,第二个存储Green值,第三个存储Blue值, 2的8次方刚好是255,所以我们一般看到的RGB值都是(0-255,0-255,0-255)这样的值。如果用rgb来表示图片的颜色值,我们称这样的图片通道为三。

OpenCV3编程入门笔记(3)线性滤波、非线性滤波、图像深度、通道的更多相关文章

  1. OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图

    图像载入.显示.保存函数: 1         图像载入函数:imread()   Mat imread(const string& filename, int flags=1); const ...

  2. OpenCV3编程入门笔记(6)自我验证各函数程序代码

    // asw.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <opencv2/opencv.hpp> usi ...

  3. OpenCV3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换

    腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形MORPH_RE ...

  4. OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道

    11     绘制直线的line函数 DrawLine(Mat img, Pont start, Point end); 绘制椭圆的ellipse函数 DrawEllipse(Mat img, dou ...

  5. OpenCV3编程入门笔记(一)

    ---恢复内容开始--- 图像处理技术一般包括图像压缩,增强和复原,匹配.描述和识别3个部分.图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强.还原.去噪.分割等:而计算机视觉重点 ...

  6. OpenCV3编程入门笔记(5)重要章节小节及核心函数

  7. 【浅墨著作】《OpenCV3编程入门》内容简单介绍&amp;勘误&amp;配套源码下载

    经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...

  8. OpenCV3编程入门.记录

    ZC:OpenCV3编程入门_毛星云编著_电子工业出版.pdf 1.在看到 PDF.P134(计算数组加权和:addWeighted()函数)的时候,其中讲到“当输出数组的深度为CV_32S时,这个函 ...

  9. OpenCV3编程入门-读书笔记2-core组件

    一.颜色空间缩减 1.概念 如果图像是3通道,深度为1个字节,则每个像素有256*256*256种可能值,这么多的可能值会对算法性能造成严重影响.利用颜色空间缩减就能解决这个问题,例如将颜色值0~9取 ...

随机推荐

  1. HashTable的实现原理

    转载:http://wiki.jikexueyuan.com/project/java-collection/hashtable.html 概述 和 HashMap 一样,Hashtable 也是一个 ...

  2. android 入门 002 (拨打电话,发送短信)

    一.拨打电话 1.首先做好界面,代码如下: layout =>activity_main.xml 中 <LinearLayout xmlns:android="http://sc ...

  3. Objective-C学习笔记_Xcode模拟命令行填入参数执行

    菜单Product->Edit Scheme 左边找到run xxx,点击后再邮编选择Arguments面板中就可以设置Xcode在运行命令行app时模拟输入参数. 设置完成后再次run就会自动 ...

  4. Storm系列之一——Storm Topology并发

    1.是什么构成一个可运行的topology? worker processes(worker进程),executors(线程)和tasks. 一台Storm集群里面的机器可能运行一个或多个worker ...

  5. 字符串处理函数(strlen wcslen...)

    1.从一个字符串中寻找某个字符最后出现的位置: wcsrchr 2. ANSI      UNICODE     自动 strlen    wcslen      _tcslen strcpy     ...

  6. MySQL基础(五)——视图

    MySQL基础(五)--视图

  7. CodeForces 670D2 Magic Powder 二分

    D2. Magic Powder - 2 The term of this problem is the same as the previous one, the only exception — ...

  8. SqlSever基础 Upper函数 返回字符串的大写形式

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  9. winform继承窗体,无法修改父窗体控件问题处理笔记

    问题描述: 一个窗体集成父窗体,发现无法直接修改父窗体的控件,比如修改大小等,父窗体控件已经设置为public,如果做成一个dll被引用无此问题 特征: 不禁使父窗体控件,就算新加一个控件也会这样:鼠 ...

  10. 用ubuntu下载电影:磁力链接,torrent,迅雷链接

    用ubuntu下载电影:磁力链接,torrent,迅雷链接 操作系统:Ubuntu 14.04 64位 需要软件:Ktorent, Amule 安装软件: sudo apt-get install k ...