OpenCV图像处理---模糊原理

本文介绍了OpenCV中的模糊处理技术,包括模糊原理、均值滤波、高斯滤波以及双边滤波。模糊处理常用于图像预处理以降低噪声,其核心是卷积计算。均值滤波简单快速但可能导致图像模糊,适合处理高斯噪声;中值滤波对椒盐噪声有良好抑制效果,保留边缘信息;双边滤波则结合空间和像素值信息,更有效地保留图像细节。
摘要由CSDN通过智能技术生成

模糊原理

  • Smooth/Blur(平滑和模糊) 是图像处理中最简单和常用的操作之一
  • 使用该操作的原因之一就是为了给图像预处理时候降低噪声把噪声与周围的数值平均一下就可以平滑噪声
  • 使用Smooth/Blur操作背后是数学的卷积计算
  • 卷积:通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分的面积。
    在这里插入图片描述
    其中:f()表示一副图像,i、j表示图像的行和列,h(k,l)表示卷积算子(卷积核)(也可以叫掩膜),k l又可以叫窗口大小(掩膜的大小,比如3*3),g()表示输出的像素值;f()的第一行,第一列数据不要,边缘像素怎么处理后续会有介绍
    • 通常这些卷积算子计算都是线性操作,所以又叫线性滤波

在这里插入图片描述
假设有6x6的图像像素点矩阵(灰色) ,黄色3x3是卷积算子
卷积过程:6x6上面有个3x3的窗口,这个3x3的窗口从左向右,从上向下移动
黄色的卷积算子乘以图像对应的像素点后,将得到的像素点值加在一起,取平均值赋给中心红色像素,作为卷积处理后的新的像素值
在这里插入图片描述

1. 归一化盒子滤波(均值滤波)

@param src input image; it can have any number of channels, which are processed independently, but
the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.
@param dst output image of the same size and type as src.
@param ksize blurring kernel size.
@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel
center.
@param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes
@sa  boxFilter, bilateralFilter, GaussianBlur, medianBlur

void blur( InputArray src, OutputArray dst,Size ksize, Point anchor = Point(-1,-1),int borderType = BORDER_DEFAULT );

在这里插入图片描述
在这里插入图片描述

矩阵卷积运算的具体过程

假设有一个卷积核h,就一般为33的矩阵:
在这里插入图片描述
有一个待处理矩阵x:
在这里插入图片描述
h
x的计算过程分为三步

第一步,将卷积核翻转180°,也就是成为了

在这里插入图片描述
第二步,将卷积核h的中心对准x的第一个元素,然后对应元素相乘后相加,没有元素的地方补0。
在这里插入图片描述
这样结果Y中的第一个元素值Y11=10+20+10+00+01+02±10±25±1*6=-16

第三步每个元素都像这样计算出来就可以得到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值