OpenCV图像处理

您所在的位置:网站首页 图像去模糊原理 OpenCV图像处理

OpenCV图像处理

2024-07-15 02:56| 来源: 网络整理| 查看: 265

模糊原理 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: 在这里插入图片描述 hx的计算过程分为三步

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

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

第三步每个元素都像这样计算出来就可以得到一个输出矩阵,就是卷积结果

在这里插入图片描述

……………………



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3