前言
随着计算机视觉的不断发展,图像的预处理成为分析图像的必然前提,本文就介绍图像处理的基础内容。
一、线性滤波
图像中,高频部分是图像中像素值落差很大的部分,如图像边缘,该部分的有用信息经常被噪声淹没。降低高频段的噪声是设计图像滤波器的关键。
图像滤波器就是一个矩阵,矩阵的系数就是滤波器的权重,在滤波过程中,使滤波器的矩阵与图像矩阵的对应点做乘加运算,得到滤波后的最终结果。
例:
一个44的图像与一个33的kernel相乘
[ 65 98 123 126 65 96 115 119 63 91 107 113 59 80 97 110 ] × [ 0.1 0.1 0.1 0.1 0.2 0.1 0.1 0.1 0.1 ] = [ 92 110 86 104 ] \left[ \begin{matrix} 65&98&123&126\\ 65&96&115&119\\ 63&91&107&113\\ 59&80&97&110 \end{matrix} \right] \times \left[ \begin{matrix} 0.1 & 0.1 & 0.1\\ 0.1 & 0.2 & 0.1\\ 0.1 & 0.1 & 0.1 \end{matrix} \right]= \left[ \begin{matrix} 92 & 110 \\ 86 & 104 \\ \end{matrix} \right] 656563599896918012311510797126119113110 × 0.10.10.10.10.20.10.10.10.1 =[9286110104]
线性滤波的原始图像与窗口的权重值之间通过加减乘除等线性运算得到目标图像,而非线性滤波则通过逻辑运算,如选取窗口区域内的最大值或中值作为目标图像的结果。
线性滤波的方法有:方框滤波、均值滤波和高斯滤波
1.方框滤波
方框滤波是计算核函数区域中像素的平均值。
函数如下:
import cv2
boxfilter = cv2.boxFilter(src, ddepth, ksize)
2.均值滤波
均值滤波是方框滤波的一种,对滤波核使用标准化操作。
函数如下:
import cv2
blur = cv2.blur(src, ksize)
2.高斯滤波
高斯滤波是使用高斯函数作为滤波器的核。
函数如下:
import cv2
gaussblur = cv2.GaussianBlur(src, ksize,sigmaX)
方框滤波和均值滤波在过滤噪声时,也使得图像变得模糊,而高斯滤波能够保留更多的图像细节信息。
二、非线性滤波
非线性滤波由逻辑运算实现。
非线性滤波的方法有:最大值滤波、最小值滤波、中值滤波、双边滤波…
1.中值滤波
中值滤波是使用kernel区域的中值实现滤波的。需要先对核内各像素值排序,再选取中位数。
函数如下:
import cv2
medianblur = cv2.medianBlur(src, ksize)
2.双边滤波
双边滤波是结合图像的空间邻近度和像素值相似度的折中。
三、形态学运算
1.膨胀
膨胀操作时选取kernel区域中最大值作为锚点位置的像素值
2.腐蚀
腐蚀操作时选取kernel区域中最小值作为锚点位置的像素值
此外,还有开运算、闭运算、形态学梯度、顶帽运算、底帽运算,是由膨胀和腐蚀操作组合而形成的。文章来源:https://www.toymoban.com/news/detail-802839.html
四、阈值化
保留或剔除高于某个像素值的像素,该像素值为阈值。文章来源地址https://www.toymoban.com/news/detail-802839.html
到了这里,关于计算机视觉——图像处理基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!