3.直方图线性拉伸处理
此节暂时略过,不太精通,后续有时间可以研究再分享一下;
4.线性滤波器
首先需要区分线性和非线性滤波器的区别,区别在于其输出与输入之间是否有唯一且确定的函数传递。
线性滤波器分类:
平滑滤波器:主要包括均值滤波器和高斯滤波器等;
锐化滤波器:主要包括SOBEL算子、LAPLAS算子、梯度运算等。
滤波器的物理意义主要是响应信号对目标信号响应后的样子,也就是响应函数g(i,j) 滑过整个图像,即对图像做一个卷积处理,就得到了滤波结果。
1)均值滤波器概述
用一个图像区域的各个像素的平均值来代替原图像的各个像素值,主要作用是减小锐度,减小噪声。
均值滤波一般出现在图像处理的预处理步骤,
预处理后,根据噪声来源,例如针对椒盐噪声做中值滤波处理,针对高斯噪声做高斯滤波处理
后续可能继续做边缘提取等复杂操作处理。
2)均值滤波器设计
设计一个滤波器可以理解成设计一个响应函数g(x,y)=Σi=-rrΣj=-rr I(x+i,y+j)) / (2r+1)2
数学公式很好理解,就是求一个窗口的所有像素灰度值之后后再除以整个窗口的面积也就是像素点个数,求出平均值;
均值滤波的方法将数据存储成3x3的矩阵,然后求这个矩阵。在图像上对目标像素给一个模板,
该模板包括了其周围的临近像素(以目标像素为中心的周围 8 个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
shift_ram 进行数据矩阵化,将3x3矩阵的中心像素的周围八个点求和,采取了流水线的设计方法,来增加吞吐量,然后再求平均值代替目标像素的值。
3)sobel算子
包括X和Y两个方向的两套3X3矩阵,使其分别和图像的X和Y方向进行卷积计算(矩阵的卷积计算即将所有元素做乘加计算),两个方向的卷积结果求平方根计算,计算结果如果大于阈值则等于0xffff,如果小于阈值则等于0,最终输出则是图像的边缘。
参考代码如下:由于算子简单以及有正负区分,因此需要做正值和负值分别计算后再进行相减计算。
5.非线性滤波器
非线性滤波器通常下是没有特定的转移函数,统计排序滤波器;
中值滤波
将 3*3 滑动块中的灰度值进行排序,然后用排序的中间值取代 3*3 滑块中心的值。示意图如下图所示。
第一步:将每一行按最大值、中间值、最小值排列;
第二步:提取出最大值的最小值,中间值的中间值,最小值的最大值;
第三步:将第二步提取出来的三个数进行排序,中间值即我们要求的中间值。
6.图像分割
图像分割是将图像划分成若干个互不相交的小区域的过程,将图像中有意义的特征或应用所需要的特征信息提取出来,最终结果是分割成一些具有某种特征的单元,称为图像的基元。
本篇到此结束,后续有时间再更新,欢迎一起交流学习,共同进步!