图像精确裁剪ai丨ai如何进行图像分类
【图像精确裁剪ai丨ai如何进行图像分类】lot物联网小编为你整理了的相关内容,希望能为你解答。
图像平滑从信号处理的角度看就是去除其中的高频信息,保留低频信息。因此我们可以对图像实施低通滤波。低通滤波可以去除图像中的噪音,模糊图像(噪音是图像中变化比较大的区域,也就是高频信息),而高通滤波能够提取图像的边缘(边缘也是高频信息集中的区域),总结一下:低通滤波就是去噪模糊,高频就是保留轮廓边缘,具体后面会详细介绍。本次主要讲述图像平滑处理,我们可以从下面的例子感受一下图像平滑处理的效果:
### 示例: 图像平滑url_path= "https://tse1-mm.cn.bing.net/th/id/OIP-C.lXIygwvEmrGZijkhVF1CWQHaGI?w=186&h=180&c=7&r=0&o=5&dpr=1.35&pid=1.7"ori_img = url2img(url_path)blur_img = cv2.blur(ori_img, (7,7))plt.figure(figsize=(9, 15))plt.subplot(121),plt.imshow(ori_img[:,:,::-1]),plt.title('原始图像')plt.axis('off')plt.subplot(122),plt.imshow(blur_img[:,:,::-1]),plt.title('平滑处理后图像')plt.axis('off')OpenCV 提供了四种平滑(模糊)技术:
均值滤波均值滤波是最简单的模糊去噪手段, 可以通过cv2.blur() 和 cv2.boxFilter() 来实现目的。
平均滤波是将一个m*n(m, n为奇数)大小的kernel放在图像上,中间像素的值用kernel覆盖区域的像素平均值替代。它可以非常方便地使用这种方法,在噪声被消除的同时,目标图像也变得模糊了。平均滤波对高斯噪声的表现比较好,对椒盐噪声的表现比较差。
2.高斯滤波器
现在把卷积核换成高斯核(简单来说,方框不变,将原来每个方框的值换成相等的,现在里面的值是符合高斯分布的,方框中心的值最大,其余方框根据 距离中心元素的距离递减,构成一个高斯小山包。原来的求平均数现在变成求 加权平均数,全就是方框里的值)。高斯函数是一种正态分布函数,一个二维高斯函数如下:
实现的函数是 cv2.GaussianBlur()。我们需要指定高斯核的宽和高(必须是奇数)。以及高斯函数沿 X,Y 方向的标准 差。高斯加权平均中,最重要是σ的选取,标准差代表数据离散程度,如果σ小高斯分布中心区域更加聚集,平滑效果越差;反之,则更离散,平滑效果越明显。高斯滤波可以有效地从 图像中去除高斯噪音。
3.中值模糊
顾名思义就是用与卷积框对应像素的中值来替代中心像素的值。这个滤波 器物经常用来去除椒盐噪声。前面的滤波器都是用计算得到的一个新值来取代中 心像素的值,而中值滤波是用中心像素周围(也可以使他本身)的值来取代他,他能有效地去除噪声。卷积核的大小也应该是一个奇数。
中值滤波器与均值滤波器比较的优势:在均值滤波器中,由于噪声成分被放入平均计算中,所以输出受到了噪声的影响,但是在中值滤波器中,由于噪声成分很难选上,所以几乎不会影响到输出。因此同样用3x3区域进行处理,中值滤波消除的噪声能力更胜一筹。中值滤波无论是在消除噪声还是保存边缘方面都是一个不错的方法。
中值滤波器与均值滤波器比较的劣势:中值滤波器花费的时间是均值滤波器的5倍以上。
4.双边滤波
函数 cv2.bilateralFilter() 能在保持边界清晰的情况下有效地去除噪音 音。但是这种操作与其他滤波器相比会比较慢。我们已经知道高斯滤波器是求 中心点邻近区域像素的高斯加权平均值。这种高斯滤波器只考虑像素之间的空 间关系,而不会考虑像素值之间的关系(像素的相似度)。所以这种方法不会考 虑一个像素是否位于边界。因此边界也会被模糊掉,而这正是我们想要的。 双边滤波在同时使用空间高斯权重和灰度值相似性高斯权重。空间高斯函 数确保只有邻近区域的像素对中心点有影响,灰度值相似性高斯函数确保只有 与中心像素灰度值相近的才会被用来做模糊运算。所以这种方法会确保边界不变 会被模糊掉,因为边界处的灰度值变化比较大。
细节图片1:
细节图片2:
4种平滑大比拼:
去噪效果大比拼:
以上内容为【图像精确裁剪ai丨ai如何进行图像分类】的相关内容,更多相关内容关注lot物联网。