第二章 视觉处理算法基础
数出图像里的所有米粒,并计算米粒的平均长度及面积,以评价等级
步骤:
1、图像预处理滤波
2、图像分割
3、计算每一个米粒的长度及面积,进一步计算均值
目标:了解图像滤波基本原理;掌握基本图像预处理滤波方法;熟悉数学形态学滤波
一、图像滤波与卷积
与一维信号滤波类似,图像滤波由卷积定义
(由一维信号转换成沿着x和y轴的图像矩阵,对图像的滤波就是把原来信号的滤波做二维扩展)
原始图像f通过滤波器滤波=原始图像f和滤波器卷积
在图像中,也常以模版的形式定义
如果滤波器对称,则二者等价
图像滤波计算——某一像素滤波结果
把原始图像对应像素和滤波器像素两两相乘,九个像素相乘结果相加,取值放在中心位置
从左到右,从上到下顺序滑动,经过滤波后的图像比原始图像小,由滤波器大小决定(半径)
二、图像去噪(图像平滑)
平均滤波
在一个小区域内(通常为33)像素值平均
加权平均滤波
在一个小区域内(通常33)像素值加权平均
图像中每个像素前乘系数,图像中心点起作用较大,权值选取(右侧为高斯模板)
中值滤波(更直观,非线性)
确定窗口及位置(含有奇数个像素)
窗口内像素按灰度大小排序
取中间值代替原窗口中心像素值
中值滤波对椒盐噪声有效
平均滤波使图像变模糊;
高斯滤波有效去噪(常用)
三、图像形态学操作
图像形态学基本操作——膨胀
(A)b 表示原始图像用其中的每一个元素进行平移操作
图像形态学基本操作——腐蚀
图像形态学操作——开闭运算
膨胀和腐蚀并不互为逆运算,二者级联使用可生成新的形态学运算
开运算:先腐蚀后膨胀
闭运算:先膨胀后腐蚀
先开后闭:可有效去除噪声
同时使得某些区域产生马赛克
相关函数
高斯平滑滤波
dst = cv.GaussianBlur(src,ksize,sigmaX[, dst[, sigmaY[, borderType]]] ]])
中值滤波
dst = cv.medianBlur( src, ksize[, dst] )
形态学滤波
dst = cv.morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]] )
总结
- 滤波即卷积,由逐点乘积后累加得到
- 平滑滤波包括平均滤波、高斯滤波、中值滤波等方法,其中高斯滤波最为常用
- 数学形态学滤波基于腐蚀与膨胀两个基本操作