图像滤波

图像平滑/滤波

北慕城南 提交于 2019-12-05 17:32:10
平滑 1.简单模糊/均值滤波: 目标图像中每一个值都是源图像相应位置的核的平均值 均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。特别是椒盐噪声 2.中值滤波: 将源图像对应位置的核大小个像素进行排序,得到中值,最后将核矩阵的中心点赋值为这个中值。 椒盐噪声很好的被平滑,而且也没均值那样模糊化太过于严重。 少量具有较大偏差的点会严重影响滤波结果 3.高斯滤波 源图像对应位置的核中心为中心,将核参数呈现二维高斯波形,然后将核和源图像对应位置求卷积。 参考:https://www.cnblogs.com/charlee44/p/10592588.html 缺点:破坏了边缘信息。把边缘也模糊了 4.双边滤波 https://blog.csdn.net/qq_36359022/article/details/80198890 结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点。 双边滤波器的好处是可以做边缘保存(edge preserving),一般用高斯滤波去降噪,会较明显地模糊边缘,对于高频细节的保护效果并不明显。 openCV接口 void bilateralFilter( InputArray src,

图像滤波和形态学运算中的矩形结构元素

 ̄綄美尐妖づ 提交于 2019-12-05 08:47:33
在图像滤波和形态学运算中,我们用得最多的是圆形结构元素(Circle)或者方形结构元素,例如: ① 圆形结构元素 opening_circle (Region, RegionOpening, 3.5) erosion_circle (Region, RegionErosion, 3.5) ② 方形结构元素 mean_image (Image, ImageMean, 9, 9) 其实方形结构元素也属于矩形结构元素。但是由于通常圆形结构元素和方形结构元素的处理效果类似,所以我暂时把它们归为同一类。 至于矩形结构元素,我这里特指结构元素的长、宽比较悬殊的。例如: mean_image (Image, ImageMean, 200, 1) opening_rectangle1 (Region, RegionOpening, 1, 50) 举个例子说明一下矩形结构元素使用时的妙用。 要求:提取出下图中的黑色横线。 算法如下: 来源: https://www.cnblogs.com/xh6300/p/11917295.html

OpenCv 026---高斯双边滤波

霸气de小男生 提交于 2019-12-04 07:58:03
1 前备知识 此前的图像卷积处理无论是均值还是高斯都是属于模糊卷积,它们都有一个共同的特点就是模糊之后图像的边缘信息不复存在或者受到了破坏。而高斯双边滤波可以通过卷积处理实现图像模糊的同时减少图像边缘破坏,滤波之后的输出完整的保存了图像整体边缘(轮廓)信息,我们称这类滤波算法为边缘保留滤波算法(EPF)。最常见的边缘保留滤波算法有以下几种: - 高斯双边模糊:高斯模糊是考虑图像空间位置对权重的影响,但是它没有考虑图像像素分布对图像卷积输出的影响,双边模糊考虑了像素值分布的影响,对像素值空间分布差异较大的进行保留从而完整的保留了图像的边缘信息。 - Meanshift均值迁移模糊:TODO - 局部均方差模糊:TODO - OpenCV中对边缘保留滤波还有一个专门的API:下文 2 所用到的主要OpenCv API /** @brief Applies the bilateral filter to an image. The function applies bilateral filtering to the input image, as described in http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html bilateralFilter can reduce

高斯模糊原理,算法

落爺英雄遲暮 提交于 2019-12-04 01:05:11
作者:Hohohong 链接:https://www.jianshu.com/p/8d2d93c4229b 來源:简书 图像卷积滤波与高斯模糊 1.1 图像卷积滤波 对于滤波来说,它可以说是图像处理最基本的方法,可以产生很多不同的效果。以下图来说 图中矩阵分别为二维原图像素矩阵,二维的图像滤波矩阵(也叫做卷积核,下面讲到滤波器和卷积核都是同个概念),以及最后滤波后的新像素图。对于原图像的每一个像素点,计算它的领域像素和滤波器矩阵的对应元素的成绩,然后加起来,作为当前中心像素位置的值,这样就完成了滤波的过程了。 可以看到,一个原图像通过一定的卷积核处理后就可以变换为另一个图像了。而对于滤波器来说,也是有一定的规则要求的。 ① 滤波器的大小应该是奇数,这样它才有一个中心,例如3x3,5x5或者7x7。有中心了,也有了半径的称呼,例如5x5大小的核的半径就是2。 ② 滤波器矩阵所有的元素之和应该要等于1,这是为了保证滤波前后图像的亮度保持不变。当然了,这不是硬性要求了。 ③ 如果滤波器矩阵所有元素之和大于1,那么滤波后的图像就会比原图像更亮,反之,如果小于1,那么得到的图像就会变暗。如果和为0,图像不会变黑,但也会非常暗。 ④ 对于滤波后的结构,可能会出现负数或者大于255的数值。对这种情况,我们将他们直接截断到0和255之间即可。对于负数,也可以取绝对值。 1.2 卷积核一些用法

opencv学习+踩坑

大兔子大兔子 提交于 2019-12-03 23:35:42
环境 ubuntu 19.04 vscode 1.37.0 opencv 3.4.7 cmake 3.13.4 拜一下julao的数字图像处理提纲 https://bitlecture.github.io/notes/%E6%95%B0%E5%AD%97%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/ 然后开始跟着毛星云的blog跑demo来学opencv 实际上如果论实用性的话,以下的系列blog可能还会更好一些? https://blog.csdn.net/morewindows/article/category/1291764 https://www.cnblogs.com/long5683/p/10094122.html 实际上学一会就会发现RM里面使用到的视觉(仅仅看这篇开源的话)并不困难 https://blog.csdn.net/u010750137/article/details/91344986 https://blog.csdn.net/qq_31669419/article/details/53053321 反而是去年的神符里面涉及到了一些类似机器学习一样的东西,更有研究的空间在 那么让我们开始视觉学习之路 文件读取和输出 https://blog.csdn.net/poem_qianmo/article/details

h.264 去块滤波

拥有回忆 提交于 2019-12-03 12:15:46
本文转自: h.264 去块滤波 原作者: https://www.cnblogs.com/TaigaCon h.264 去块滤波 块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact)。 首先我们需要搞清楚块效应产生的原因。h.264在编码过程中对像素残差进行了DCT变换,变换后得到的DCT系数是与每个像素都相关的,这些系数代表了被变换数据的基础色调与细节。h.264在DCT变换后对DCT系数进行了量化,量化能有效去除相邻像素间的空间冗余,也就是说会抹去元素数据的部分细节。比较理想的情况是量化抹去人眼无法识别的细节部分,但是在低码率的情况下就会导致原始数据的细节丢失过多。而且,DCT变换时基于块的,即将8x8或者4x4的像素残差进行变换后得到8x8或者4x4DCT系数,此时如果进行了低码率的量化,就会使得相邻两个块的相关性变差,从而出现块效应。 h.264的运动补偿加剧了由变换量化导致的块效应。由于运动补偿块的匹配不可能绝对准确,各个块的残差大小程度存在差异,尤其是当相邻两个块所用参考帧不同、运动矢量或参考块的差距过大时,块边界上产生的数据不连续就更加明显。 块效应主要有两种形式:一种是由于DCT高频系数被量化为0,使得强边缘在跨边界处出现锯齿状

图像保边滤波算法集锦--MeanShift滤波算法与实现

匿名 (未验证) 提交于 2019-12-03 00:30:01
本文将尝试使用MeanShift滤波来做磨皮算法; MeanShift Fukunage 1975 The Estimation of the Gradient of a density function. MeanShift MeanShift MeanShift ( ) Fig.1 MeanShift Radius a a RGB 1,a Radius RGB M c 2,( RGB ) M 3,M Radius M 4,1-3 5, 图 a RGB M RGB f a f a f RGB MeanShift MeanShift 算法流程如下: 1,P(i,j) R maxIter threshold 2,P R S rgb ( ) K |x-y| 1,P M 2 2,2-3 maxIter P rgb MeanShift YCbCr Y 效果图如下所示: 完整C代码如下: #include "string.h" #include "stdio.h" #include "stdlib.h" #include "math.h" #include"f_MeanShiftFilter.h" #include"TRGB2YCbCr.h" #define MIN2(a, b) ((a) < (b) ? (a) : (b)) #define MAX2(a, b) ((a) > (b) ?

几种常见空间滤波器MATLAB实现

匿名 (未验证) 提交于 2019-12-03 00:19:01
一、目的 实现算术均值滤波器、几何均值滤波器、中值滤波器、修正的阿尔法均值滤波器、自适应中值滤波器,并比较不同滤波器的降噪结果。 二、代码 代码的思路如下: (1)先对原始的电路图先后进行加高斯噪声和椒盐噪声;之后设置滤波器的模板大小为5*5,分别对被噪声污染的图像进行算术均值、几何均值、中值、修正的阿尔法滤波,并输出图像,方便结果比较。 (2)为了比较中值滤波器和自适应中值滤波器的滤波结果,先对原始电路图添加椒盐噪声;接着对噪声图像进行模板大小为5*5的中值滤波;最后对噪声图像进行最大模板为5*5的自适应中值滤波,分别输出滤波后的图像,比较结果。 代码具体实现如下: %******************************************************% %目的:比较几种不同均值滤波器和自适应中值滤波器的去噪声效果 %日期:2018.5.18 %******************************************************% %读入图像 img = imread('img.tif'); figure; subplot(1,3,1); imshow(img); title('原始图像'); %分别添加加入高斯噪声和椒盐噪声 f1 = imnoise(img,'gaussian'); subplot(1,3,2) imshow

h.264 去块滤波

匿名 (未验证) 提交于 2019-12-03 00:17:01
原作者: https://www.cnblogs.com/TaigaCon h.264 去块滤波 块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact)。 首先我们需要搞清楚块效应产生的原因。h.264在编码过程中对像素残差进行了DCT变换,变换后得到的DCT系数是与每个像素都相关的,这些系数代表了被变换数据的基础色调与细节。h.264在DCT变换后对DCT系数进行了量化,量化能有效去除相邻像素间的空间冗余,也就是说会抹去元素数据的部分细节。比较理想的情况是量化抹去人眼无法识别的细节部分,但是在低码率的情况下就会导致原始数据的细节丢失过多。而且,DCT变换时基于块的,即将8x8或者4x4的像素残差进行变换后得到8x8或者4x4DCT系数,此时如果进行了低码率的量化,就会使得相邻两个块的相关性变差,从而出现块效应。 h.264的运动补偿加剧了由变换量化导致的块效应。由于运动补偿块的匹配不可能绝对准确,各个块的残差大小程度存在差异,尤其是当相邻两个块所用参考帧不同、运动矢量或参考块的差距过大时,块边界上产生的数据不连续就更加明显。 块效应主要有两种形式:一种是由于DCT高频系数被量化为0,使得强边缘在跨边界处出现锯齿状,称为梯形噪声;另一种经常出现在平坦区域

Opencv图像滤波原理

匿名 (未验证) 提交于 2019-12-03 00:03:02
图像滤波原理 高斯滤波 先看原图 在opencv里调用API如下 原理代码 中值滤波 原理 Opencv_API 欢迎一起来参与leetcode刷题项目 高斯滤波 二维情况下的高斯滤波分布 1 2 π σ x σ y exp ( x u ) 2 + ( y v ) 2 2 σ x σ y \frac{1}{2\pi \sigma_x \sigma_y} \exp { -\frac{(x-u)^2 + (y-v)^2}{2\sigma_x \sigma_y} } 2 π σ x σ y 1 exp 2 σ x σ y ( x u ) 2 + ( y v ) 2 不过一般情况下都是让 x x x 方向和 y y y 方向的方差相等 1 2 π σ 2 exp ( x u ) 2 + ( y v ) 2 2 σ 2 \frac{1}{2\pi \sigma^2} \exp { -\frac{(x-u)^2 + (y-v)^2}{2\sigma^2} } 2 π σ 2 1 exp 2 σ 2 ( x u ) 2 + ( y v ) 2 先看原图 plt . imshow ( img_d1 ) 这个颜色是因为opencv的默认格式为BGR 在opencv里调用API如下 # 这里设置方差都为0.8,你也可以让两个方向的方差不等 plt . imshow ( cv .