图像平滑
均值滤波
简单的平均卷积操作,每个都乘或除一定的值再求平均值
方框滤波
基本和均值一样,可以选择归一化,未选择归一化容易越界,越界后均赋予最大值255
高斯滤波
高斯模糊的卷积核里的数值是满足高斯分布(类似正态分布,中间大,附近小),相当于更重视中间的
中值滤波
取核大小中间值,将中间值设为中心,相当于用中值代替
形态学
腐蚀操作
用给定核将所给区域缩减,越来越小
膨胀操作
用给定核将所给区域增加,越来越大
开运算
先腐蚀,再膨胀
闭运算
先膨胀,再腐蚀
梯度运算
膨胀-腐蚀
礼帽(MORPH_TOPHAT)
原始输入-开运算
黑帽(MORPH_BLACKHAT)
闭运算-原始输入
图像梯度
Sobel算子
按照给定Gx和Gy进行运算,注意白到黑是正数,黑到白是负数,所有的负数会被截断成0,所以要取绝对值
建议x和y分别计算再合在一起,不建议直接计算
Scharr算子
比Sobel算子更敏感,检测的更细致些,更丰富的线条
laplacian算子
和Sobel算子不一样,中间值和邻接值不一样,不建议单独使用,得到的结果没有Sobel算子好
Canny边缘检测
1)使用高斯滤波器,以平滑图像,滤除噪声
2)计算图像中每个像素点的梯度强度和方向
3)应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应
线性插值法:设g1的梯度幅值M(g1),g2的梯度幅值M(g2),则dtmp1可以很快得到:M(dtmp1)
=w*M(g2)+(1-w)*M(g1)
其中w=distance(dtmp1,g2)/distance(g1/g2)
distance(g1,g2)表示两点之间的距离
为了简化计算,由于一个像素周围有八个像素,把一个像素的梯度方向离散为八个方向,这样就只需计算前后即可,不用插值了
4)应用双阀值(Double-Threshold)检测来确定真实和潜在的边缘
梯度值>maxVal:则处理为边界
minVal<梯度值<maxVal:连有边界则保留,否则舍弃
梯度值<minVal:则舍弃
5)通过抑制孤立的弱边缘最终完成边缘检测
图像金字塔
高斯金字塔
向上采样(放大)
从顶部往底部走
将图像在每个方向扩大为原来的两倍,新增的行和列以0填充
使用先前同样的内核(乘以4)与放大后的图像卷积,获得近似值
向下采样(缩小)
从底部往顶部走
用内核做高斯卷积,将所有偶数行和列去除
拉普拉斯金字塔
Li = Gi - PyrUp(PyrDown(Gi))
1.低通滤波
2.缩小尺寸
3.放大尺寸
4.图像相减