3.1傅里叶变换
3.1.1高通滤波器(HPF)
检测图像的某个区域,根据像素与周围像素的亮度差值来提升该像素的亮度的滤波器。
(Numpy只接受一维数组)
高通滤波图=原图-高斯滤波图
3.1.2低通滤波器(LPF)
像素与周围像素的亮度差值小于一个特定值时,平滑该像素的亮度。用于去噪和模糊化。如高斯模糊,是一个削弱高频信号强度的低通滤波器。
3.1.3用定制内核做卷积
filter2D(src,-1,kernel,dst)第二个参数指定目标图像每个通道的位深度,为负值表示目标图像和源图像有同样的位深度。对于彩色图像来说,若对每个通道使用不同的核需使用split()和merge()函数。
卷积核(卷积矩阵),赋予不同的权重,权重和为1表示锐化增强(中间元素与相邻元素的差值增大),和为0表示边缘。
锐化:
[
[
−
1
,
−
1
,
−
1
]
,
[
−
1
,
9
,
−
1
]
,
[
−
1
,
−
1
,
−
1
]
]
[[-1,-1,-1],[-1,9,-1],[-1,-1,-1]]
[[−1,−1,−1],[−1,9,−1],[−1,−1,−1]]
边缘:
[
[
−
1
,
−
1
,
−
1
]
,
[
−
1
,
8
,
−
1
]
,
[
−
1
,
−
1
,
−
1
]
]
[[-1,-1,-1],[-1,8,-1],[-1,-1,-1]]
[[−1,−1,−1],[−1,8,−1],[−1,−1,−1]]
权重为均为正,且和为1,表示模糊。
以上一般是高度对称的核,也有不对称的核,如下同时具有模糊(正的权重)和锐化(负的权重)。
[
[
−
2
,
−
1
,
0
]
,
[
−
1
,
1
,
1
]
,
[
0
,
1
,
2
]
]
[[-2,-1,0],[-1,1,1],[0,1,2]]
[[−2,−1,0],[−1,1,1],[0,1,2]]
3.2边缘轮廓检测
3.2.1边缘检测Canny()
五步:高斯模糊去噪;灰度图梯度计算;非极大值抑制;高低阈值输出二值图像,高低阈值比一般为3:1或2:1;分析所的边缘及其连接,保留真正的边缘并消除不明显的边缘。
3.2.2轮廓检测findContours()
转二值图像
会修改输入图像,三个返回值:修改后的图像;图像的轮廓;层次。
3.2.3边界框,最小矩形区域和最小闭圆的轮廓
在找到所有轮廓后,遍历
边界框boundingRect()
最小矩形区域minAreaRect()
最小闭圆minEnclosingCircle()
3.2.4近似多边形和凸多边形
approxPloyDP(轮廓,阈值,bool)
阈值用arcLength()计算,表示所得的近似多边形周长与源轮廓周长之间的最大差值,差值越小,表示越接近。
凸多边形convexHull()
3.2.5霍夫检测直线和圆
直线检测HoughLines()和HoughLinesP()
后者是前者的优化版本,使用概率Hough变换
函数的输入:待处理图像,通常是canny处理后的图像比较好;线段的几何表示(取1和np.pi/180);阈值;最小直线长度;最大线段间隙
圆检测HoughCircles()
圆心间的最小距离;圆的最小及最大半径