滤波器与卷积核

参考:https://www.cnblogs.com/zongfa/p/9130167.html

卷积核就是一个二维mxm矩阵。二维图像与二维矩阵卷积之后的结果,就实现了对图像的滤波。

卷积核一般有以下一些规则:

  • m的大小应该是奇数,这样它才有一个中心,例如3x3,5x5或者7x7。有中心了,也有了半径的称呼,例如5x5大小的核的半径就是2。
  • 矩阵所有元素之和一般等于1。如果和大于1,那么滤波后的图像就会比原图像更亮,反之,如果小于1,那么得到的图像就会变暗。如果和为0,图像不会变黑,但也会非常暗。
  • 对于滤波后的结构,可能会出现负数或者大于255的数值。对这种情况,我们将他们直接截断到0和255之间即可。对于负数,也可以取绝对值。这与代码中参数设置有关。

上面说到,对图像的滤波处理就是对图像应用一个小小的卷积核。卷积核的内部结构不同,图像的处理效果也就完全不同。

1. 与原图一样的效果

卷积核:
在这里插入图片描述
得到的图像和原图是一样的。因为只有中心点的值是1。邻域点的权值都是0,对滤波后的取值没有任何影响。

2. 图像锐化

图像的锐化和边缘检测很像,首先找到边缘,然后把边缘加到原来的图像上面,这样就强化了图像的边缘。也就是在边缘检测滤波器的基础上,再在中心的位置加1,这样滤波后的图像就会和原始的图像具有同样的亮度了,但是会更加锐利。锐化滤波器实际上就是计算当前点和周围点的差别,然后将这个差别加到原来的位置上。
在这里插入图片描述
下边的滤波器更加强调边缘:
在这里插入图片描述
3. 边缘检测

找水平边缘(0度):
在这里插入图片描述
找垂直边缘(90度):
在这里插入图片描述
找45度边缘:
在这里插入图片描述
找135度边缘:
在这里插入图片描述
4. 浮雕效果

浮雕滤波器可以给图像一种3D阴影的效果。只要将中心一边的像素减去另一边的像素就可以了。这时候,像素值有可能是负数,我们将负数当成阴影,将正数当成光,然后我们对结果图像加上128的偏移。这时候,图像大部分就变成灰色了。

45度浮雕效果:
在这里插入图片描述
增大滤波器,得到更夸张的效果:
在这里插入图片描述
5. 运动模糊

135度角的模糊,
在这里插入图片描述
均值模糊:
在这里插入图片描述
自定义内核对图像做卷积:

c++:

#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
 
int main()
{
	//system("color 02");
	//读取原图
	cv::Mat src = cv::imread("xxxxxxxxxx.jpg");//图像路径
	//自定义内核
	cv::Mat kernel = (cv::Mat_<float>(3, 3) << 1, 1, 1,
				                1, -7, 1,	
				                1, 1, 1);
	cv::Mat dst;
	//卷积操作
	cv::filter2D(src, dst, src.depth(), kernel);
 
	cv::namedWindow("dst", CV_WINDOW_NORMAL);
	cv::imshow("dst", dst);
	cv::waitKey();
 
    return 0;
}

python:

import cv2
import numpy as np
img = cv2.imread('1-test.jpg',cv2.IMREAD_GRAYSCALE) #提取图像灰度值

kernel = np.array(([-1,-1,-1],[-1,8,-1],[-1,-1,-1])) #定义核
result = cv2.filter2D(img,-1,kernel)
cv2.imshow('result.jpg', result)
cv2.waitKey()
  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值