前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >opencv 4 -- 图像平滑与滤波--核心卷积操作

opencv 4 -- 图像平滑与滤波--核心卷积操作

作者头像
wust小吴
发布2019-07-08 18:19:44
1.1K0
发布2019-07-08 18:19:44
举报
文章被收录于专栏:风吹杨柳

opencv提供了四种低通滤波方式,基本原理是一致的,基本都是用 卷积核 进行处理

什么叫卷积核?

前面形态学处理章节,已经谈到核,基本思想跟深度学习网络中卷积层的那个核是一样的

核从代码层面来讲,就是一个矩阵,一个表示大小范围的矩阵

核,可以认为是过滤器,可以认为是一个窗口, 它通过不停的在画面上滑动,与原图相同的范围做卷积运算, 将计算结果替换掉原图对应区域的中心位置的值

重复这个动作,直到将这个图片上每个元素都卷积了一次为止

卷积操作

OpenCV 提供的函数 cv.filter2D() 可以让我们对一幅图像进行卷积操作

下面是一个 5x5 的平均滤波器核

这里写图片描述
这里写图片描述

操作如下:将核放在图像的一个像素 A 上,求与核对应的图像上 25(5x5) 个像素的和,在取平均数,用这个平均数替代像素 A 的值。

重复以上操作直到 将图像的每一个像素值都更新一边

代码语言:javascript
复制
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('person_454.bmp',0)
kernel = np.ones((5,5),np.float32)/25

dst = cv2.filter2D(img,-1,kernel)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]), plt.yticks([])
plt.show()

结果:可以从边界处看到图像发生了模糊变化

这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年05月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档