OpenCV下的图像平滑技术
清溪算法
这个作者很懒,什么都没留下…
展开
-
0024-利用OpenCV的filter2D函数作图像的卷积操作和协相关操作
图像的卷积操作是图像处理中最常用的操作之一,一般是用核算子来实现卷积操作。什么叫核算子?请移步博文https://blog.csdn.net/lehuoziyuan/article/details/84101788OpenCV用函数filter2D来实现对图像或矩阵的卷积操作。这个函数本质上做的是协相关操作,但是当核算子是对称的,则协相关操作也是卷积操作,计算公式如下。当核算子不是对称的时...原创 2018-11-15 13:23:04 · 387 阅读 · 0 评论 -
0022-在OpenCV环境下做图像或矩阵的傅里叶变换
傅里叶变换的概念在《高等数学》、《信号与系统》、《数字信号处理》中都有详细的原理说明,网上也有一大堆文章解释其原理。这里我就不多说了,总之它是把信号变换到三角函数系里,实际上是域的变换,至于变换有什么好处,其实就是从另一个角度观察同一个信号。对图像的傅里叶变换实际上是一个二维傅里叶变换。OpenCV提供了函数dft来作傅里叶变换,这个函数的使用方法很简单,大家看了代码便知道怎么用了。代码如下:代...原创 2018-11-15 11:41:32 · 218 阅读 · 0 评论 -
0021-用OpenCV的pyrUp和pyrDown函数计算图像金字塔(向上/下采样)
图像金字塔是一个图像集合,集合中所有的图像都源于同一个原始图像,通过对原始图像进行连续采样得到图像集合。常见的有两种图像金字塔,即高斯金字塔和拉普拉斯金字塔。高斯金字塔:向下降采样图像。金字塔从i层生成第i+1层,先用高斯核对Gi进行卷积,然后,删除所有偶数行和偶数列。这样,新得到的图像面积会变为源图像的四分之一。循环上述过程,即可产生整个金字塔。拉普拉斯金字塔:从低层图像中向上采样重建图像。图像...原创 2018-11-15 11:31:45 · 321 阅读 · 0 评论 -
0030-用OpenCV的inpaint函数做图像的污点修复
OpenCV提供了inpaint函数做图像的污点修复,它是基于像素邻域计算进行的修复,原型如下:C++: void inpaint(InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags)参数意义如下:src:需要进行修复的图像inpaintMask:掩码图像,和src一样大...原创 2018-11-15 14:29:20 · 4367 阅读 · 3 评论 -
0029-在OpenCV环境下做导向滤波的代码
前边提到的均值滤波、中值滤波和高斯滤波,都属于各向同性滤波,它们对待噪声和图像的边缘信息都采取一样的态度,结果,噪声被磨平的同时,图像中具有重要地位的边缘、纹理和细节也同时被抹平了,这是我们所不希望看到的。为了解决这个问题,人们陆续提出了一些算法来把图像边缘和噪声区别对待,比如双边滤波和导向滤波,本文介绍如何使用opencv做图像的导向滤波。先来说下导向滤波的大致思路。在导向滤波中,要对图像p...原创 2018-11-15 14:23:51 · 234 阅读 · 0 评论 -
0028-用OpenCV的函数bilateralFilter做双边滤波
前几篇帖子提到的均值滤波、中值滤波和高斯滤波,都属于各向同性滤波,它们对待噪声和图像的边缘信息都采取一样的态度,结果,噪声被磨平的同时,图像中具有重要地位的边缘、纹理和细节也同时被抹平了,这是我们所不希望看到的。为了解决这个问题,人们陆续提出了一些算法来把图像边缘和噪声区别对待,比如双边滤波和导向滤波,本文介绍如何使用opencv做图像的双边滤波。关于双边滤波的原理,大家可以参考网页:http:...原创 2018-11-15 14:05:28 · 2052 阅读 · 0 评论 -
0027-用OpenCV的GaussianBlur函数做高斯滤波
高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器,听说高斯滤波器对于服从正太分布(高斯分布)的噪声非常有效,然而实际来看,貌似效果也不怎么样啊,具体的大家可以看本篇帖子代码的运行结果,是笔者哪里没操作对么?GaussianBlur函数原型如下:C++: void GaussianBlur(InputArray src, OutputArray dst, Size ksize, dou...原创 2018-11-15 13:51:29 · 805 阅读 · 0 评论 -
0026-用OpenCV的RNG类为图像添加高斯噪声
在OpenCV中,可以用RNG类来产生均匀分布和正态分布(高斯分布)的随机数。RNG的英文全称是Random number generator,从名字上大家就可以看出这个类的用途。我们可以用这个类的成员函数fill来为图像添加高斯噪声。RNG:fill的原型如下:C++: void RNG::fill(InputOutputArray mat, int distType, InputArray...原创 2018-11-15 13:41:47 · 1974 阅读 · 0 评论 -
0025-给图像添加椒盐噪声之后用均值滤波和中值滤波过滤图像
椒盐噪声是椒噪声和盐噪声的合称,它是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声,去除椒盐噪声的最常用算法是中值滤波,在去除椒盐噪声的效果上均值滤波不如中值滤波,本文所给的代码会证明这个结论。首先说下怎么给图像加上椒噪声和盐噪声。我们可以利用C++的srand函数和rand函数来产生随机坐标,并把这些坐标置为椒噪声点或盐噪声点。这两个函数的用法就不多说了,大家可自行搜索下网上...原创 2018-11-15 13:28:52 · 4040 阅读 · 0 评论 -
0023-图像处理中核算子的概念
在图像处理的运算中,我们通常会用一个窗口矩阵(即下文和标题中提到的核算子)去遍历待处理的矩阵或图像,在遍历的同时按一定的运算法则把窗口内的数与矩阵或图像中的数作运算得到新值,并用这些新值去更新矩阵或图像。每次运算被更新的象素相对这个核算子的位置称为锚点位置,在opencv中,若锚点坐标为(-1,-1)则代表核算子最中间的点对应的原图像中的点值在运算后被更新。核算子不同运算结果自然不一样,也实现...原创 2018-11-15 12:13:00 · 753 阅读 · 0 评论