canny算法(1)——高斯平滑滤波

高斯平滑滤波是一种线性滤波,用于消除高斯噪声,广泛用于图像处理的减噪。高斯滤波就是对整幅图像进行加权平均,每一个像素的值都是由其本身和邻域内的其它像素值经过加权平均后得到的。这里需要一个模板,即高斯核的计算,上一篇文章详细计算过(高斯核的计算)。高斯滤波的计算公式如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 计算高斯核 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
pi=3.1415926;%高斯公式中Π的值
sum1=0;%计算累计权重的值
d=1;%高斯核标准差
c=5;%高斯核大小
center=(c/2)+0.5;%模板的中心,这里取整
A=1/(2*pi*d*d);%高斯公式指数前面的系数
for i=1:cx2=(i-center)*(i-center);for j=1:cy2=(j-center)*(j-center);B=exp(-(x2+y2)/(2*d*d));C(i,j)=A*B;sum1=sum1+C(i,j);end
end
%整数形式的高斯核,需要进行归一化,即把左上角的值化为1
%下面进行归一化
k=1/C(1,1);
for i=1:cfor j=1:cD(i,j)=C(i,j)*k;%进行归一化后整数形式的高斯核,有小数可以取整sum1=sum1+D(i,j);end
end%若需要小数形式的高斯核,则在不需要归一化,而需要进权重分配,高斯核的每个系数要除以所有系数的和。
%下面进行权重分配
for i=1:cfor j=1:cE(i,j)=C(i,j)/sum1;%进行权重分配后小数形式的高斯核end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%截至这里,高斯核以计算完毕%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 高斯滤波器模板的生成最重要的参数就是高斯分布的标准差。
% 标准差代表着数据的离散程度,如果较小,那么生成的模板的中心系数较大,
% 而周围的系数较小,这样对图像的平滑效果就不是很明显;
% 反之,较大,则生成的模板的各个系数相差就不是很大,比较类似均值模板,对图像的平滑效果比较明显。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%截至这里,高斯核以计算完毕%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 开始进行高斯滤波 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I=imread('xiaobao.png');%读取灰度图片
subplot(1,2,1)
imshow(I)%输出原始灰度图片
I=double(I);%转换为浮点型
yuan_tu=I(50,50)%显示出原图(50,50)处的像素
[row,col]=size(I)%获取图片的长宽
%由于这里作者水平有限,因此,对图像先不做边界填充
for k=1:rowfor m=1:colsum2=0;%进行卷积,模板与图像对应部分相乘再累加for i=1:cfor j=1:c%下面if判断相当于给图像的边缘填充0if(((k-center+i)>0&&(k-center+i)<= row)&&((m-center+j)>0&&(m-center+j)<=col))sum2=sum2+ E(i,j)*I(k-center+i,m-center+j);endendendmyimg(k,m)=sum2;end
end
xian_tu=myimg(50,50)%显示出现图(50,50)处的像素
subplot(1,2,2)
imshow(myimg,[])%输出处理后的灰度图片
%%%%%%%%%%%%%%%%%%%%%%%%%%%%截至这里,简单的高斯滤波处理完毕%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%需要注意的是在这里对四个边界的填充均以0处理,
%%可能效果不太好,读者若是想用,可以另作处理

canny算法(1)——高斯平滑滤波相关推荐

  1. OpenCV之canny()函数,边缘检测,高斯平滑滤波的理解

    草鸡详细的canny()函数理解和代码实现 一个电脑小白的自我成长之路^_&. canny()边缘检测过程 1.Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个 ...

  2. c++ openvc4.5.5 学习笔记(五)图像平滑滤波几种基本方法(平均滤波blur、高斯平滑滤波GaussianBlur、中值滤波medianBlur、双边滤波bilateralFilter )

    平滑,也称为模糊,是一种简单而经常使用的图像处理操作. 要执行平滑操作,我们将对我们的图像应用过滤器.最常见的滤波器类型是线性的,其中输出像素的值(i.e. g(i,j)),被确定为输入像素值的加权和 ...

  3. 均值滤波 中值滤波 高斯平滑滤波

    均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代 ...

  4. OpenCV 【七】————边缘提取算子(图像边缘提取)——canny算法的原理及实现

    canny边缘检测实现(C++.opencv) 1.作用: 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用.在空域运 ...

  5. c#中实现图像图像卷积与滤波-高斯平滑

    使用C#语言编写高斯平滑. 一.线性滤波与卷积的基本概念 2D卷积需要4个嵌套循环4-double loop,所以它并不快,除非我们使用很小的卷积核.这里一般使用3×3或者5×5.而且,对于滤波器,也 ...

  6. matlab肌电信号平滑滤波_MATLAB图像处理:43:用高斯平滑滤波器处理图像

    本示例说明了如何使用imgaussfilt来对图像应用不同的高斯平滑滤波器.高斯平滑滤波器通常用于降低噪声. 将图像读入工作区. I = imread('cameraman.tif'); 使用各向同性 ...

  7. python opencv高斯滤波_【OpenCV】基于Python的图像高斯平滑和椒盐噪声处理 | 学步园...

    最近要做一个Project,是使用TV来对添加了Gaussian和Salt&Pepper噪声的图像进行恢复,前期的任务是生成噪声污染的图像. 噪声图像的生成采用对图像进行高斯平滑,之后在随机的 ...

  8. C#高斯平滑算法 :二维高斯卷积代码实例

    //高斯平滑处理方法//inputImage 输入图像// outputImage 输出图像//sigema 均方差private void gaussSmooth(double[]inputImag ...

  9. 图像处理之平滑滤波、高斯滤波和中值滤波

    图像的滤波 图像的滤波概念 平滑滤波 高斯滤波 中值滤波 图像的滤波概念 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到 ...

最新文章

  1. Java 代码精简之道
  2. Ubuntu下安装OpenGL/Glut库
  3. php 开启 pathinfo,nginx下PHP开启pathinfo模式
  4. 一个大型虚拟项目包含位于不同地点的许多干系人_项目管理与人生
  5. android 索引怎么使用情况,android 數據庫查詢中使用索引-大幅提高數據庫操作速度...
  6. 信息安全工程师笔记-网络安全漏洞防护技术原理与应用
  7. android 透明栏,Android状态栏透明(沉浸式效果)
  8. nsis出错_cf nsis错误怎么办 nsis错误解决办法全解
  9. 【操作系统】GPT和MBR分区的区别
  10. 数字签名和数字证书的区别与联系
  11. 海康监控如何设置STMP邮箱报警
  12. 我搭的神经网络不 work 该怎么办!看看这 11 条新手最容易犯的错误
  13. 市场复苏下:报复性消费,了解一下~
  14. Git 报错:You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).Please, commit your changes
  15. linux彻底清除磁盘阵列,Linux下彻底关闭某个RAID磁盘阵列
  16. vue两个数组如何判断值是否相同_vue两个数组如何判断重复的数据?
  17. c语言程序 蟠桃记,蟠桃记
  18. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之六自定义View涂鸦项目实战!
  19. sqlserver数据库安全
  20. npm ERR notarget No matching version found for XXX@^1.3.0.(已解决)

热门文章

  1. python安装环境变量出错_在windows 10上安装twisted时出错。INCLUDE环境变量为空
  2. 如何将日期时间格式12小时制转换为24小时制
  3. 人参考基因组不同版本区别 CRCH37 vs b37 vs hg19 vs hsd537 vs GRCH38
  4. BS资产管理系统_BS资产管理系统方案
  5. 把一个数据库中的数据导入到另一个数据库中的方法
  6. windows wss协议_Windows SharePoint Services(WSS)和SharePoint Server(MOSS)之间有什么区别...
  7. nginx配置wss协议
  8. 自动化PXE系统安装
  9. ROBOGUIDE仿真教程
  10. Unix高级安全设置