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. corefile的设置与使用

    一.简介 corefile是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息. 二.corefile的设置 默认情况下,程序崩溃是不会生成corefi ...

  2. 关于Filter的配置

    配置代码: <filter> <display-name>OneFilter</display-name>  <filter-name>OneFilte ...

  3. 配置 ASP.NET Linux( CentOS 6.5 ) 运行环境 MONO + Jexus

    1.更新系统 在命令行下执行 yum –y update 2.安装必要的软件 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettex ...

  4. mvcAPI (入门 3)(源码)

    mvcAPI (入门 3)(源码) http://download.csdn.net/detail/chunfang740/9078579

  5. HDU 2817 A sequence of numbers 整数快速幂

    A sequence of numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  6. 【leetcode❤python】 88. Merge Sorted Array

    #-*- coding: UTF-8 -*-class Solution(object):    def merge(self, nums1, m, nums2, n):        "& ...

  7. CSS在线字体库,外部字体的引用方法

    目录: 1:CSS家族五大字体 2:360和谷歌外部字体引用方法 3:谷歌外部字体引用方法详解 4:@font-face用法详解 一: {font-family:serif,sans-serif,fa ...

  8. [POJ3667]Hotel(线段树,区间合并)

    题目链接:http://poj.org/problem?id=3667 题意:有一个hotel有n间房子,现在有2种操作: 1 a,check in,表示入住.需要a间连续的房子.返回尽量靠左的房间编 ...

  9. [数据结构与算法]栈Stack的多种实现

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. Codeforces Round #286 (Div. 2) B. Mr. Kitayuta's Colorful Graph dfs

    B. Mr. Kitayuta's Colorful Graph time limit per test 1 second memory limit per test 256 megabytes in ...