Matlab的fspecial函数

 

 

函数原型

h = fspecial(type) 
h = fspecial(type,para) 
根据函数原型对fspecial函数作个说明,fspecial是用来生成滤波器(也叫算子)的函数,使用type参数来指定滤波器的种类,使用para来对具体的滤波器种类添加额外的参数信息。h就是生成的滤波器。

 

2 滤波器的种类

type参数通常可以取gaussian、average、disk、laplacian、log、prewitt

 

2.1  高斯滤波器

H = fspecial(‘gaussian’,hsize,sigma) ; 
当type = ‘gaussian’时就是高斯滤波器了,size指定滤波器的大小,默认值是3×3,sigma指定滤波器的标准差,默认值是0.5。要深刻理解的是,sigma决定了高斯模糊核的模糊程度。从数学上来讲, 高斯半径(sigma)对曲线形状的影响,sigma越小,曲线越高越尖,sigma越大,曲线越低越平缓。因此高斯半径越小,则模糊越小,高斯半径越大,则模糊程度越大。换句话说,sigma越小,数值分布就越集中,sigma越大,数值分布就越分散。所以当我们使用sigma的值很大的时候,然后运用此模糊核对图像处理,会使图像更加模糊。

 h1 = fspecial('gaussian',5,1)
 h2 = fspecial('gaussian')
% 测试sigma的作用
>> f1 =fspecial('gaussian',7,1);
>> f2 =fspecial('gaussian',7,1000000);
%卷积
>> img_1 =imfilter(img,f1,'replicate');
>> img_100 =imfilter(img,f2,'replicate');
%显示图像,观察效果
>> figure;imshow(img_1,[]);title('sigma =1');
>> figure;imshow(img_100,[]);title('sigma =1000000000');1234567891011

2.2 均值滤波器

函数形式:H =fspecial(‘average’,hsize) ;生成均值滤波器,hsize同样指定滤波器的尺寸,默认是3×3。

 

% 你会发现h1的每个元素都等于 1/(5×5)
h1 = fspecial('average',5)
% h1的每个元素值等于 1/(3×3)
h2 = fspecial('average')1234

 

2.3 圆形均值滤波器

H = fspecialL(‘disk’,RADIUS) 生成圆形区域均值滤波,参数为radius代表区域半径,默认值为5。值得注意的是,虽然说是圆形,但是H却是一个同上面一样长宽都相等的方形。尺寸为:2×RADIUS+1。

 

h1 = fspecial('disk',3)
% [7 7]
size(h1)123

 

2.4 拉普拉斯滤波器

H = fspecial(’laplacian’,ALPHA)  
生成拉普拉斯算子,参数alpha用于控制算子形状,取值范围为【0,1】,默认值为0.2。值得注意的是,拉普拉斯滤波器不再像前述的滤波器那样可以指定尺寸,而一定是3×3。因为其一定是二维的,所以比较适合二维的操作。

 

h1 =fspecial('laplacian')1

 

2.5  拉普拉斯高斯滤波器

H = fspecial(‘log’,hsize,sigma) 为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为【3 3】,sigma为滤波器的标准差,单位为像素,默认值为0.5.

 

h1 =fspecial('log',3,0.2)
% 使用默认值
h2 =fspecial('log')123

 

prewitt

H = fspecial(‘prewitt’) 用于边缘增强,大小为【3 3】,无参数。也就是说这个滤波器就是唯一的,元素都是固定的。

 

 h1 =fspecial('prewitt')
  1     1     1
  0     0     0
 -1    -1    -11234

 

sobel

H = fspecial(‘sobel’)和上面的prewitt一样无参数,用于边缘的提取。

 

>> h1 = fspecial('sobel')

h1 =

     1     2     1
     0     0     0
    -1    -2    -1
12345678

 

运动模糊(motion)滤波器

H = fspecial(‘motion’,len,theta) 为运动模糊算子,有两个参数,表示摄像物体逆时针方向以theta角度运动了len个像素,len的默认值为9,theta的默认值为0。

 

unsharp

H = fspecial(‘unsharp’,alpha)为对比度增强滤波器。参数alpha用于控制滤波器的形状,范围为【0,1】,默认值为0.2。返回的也是3×3大小的矩阵。

 

使用代码

在实践下面的代码的时候,可以使用:whos 变量名;来查看你所关心的变量的数据类型,大小等情况。

 

img = imread('images/apple.jpg');
% 依次替换为其他滤波器的语法即可
h1 = fspecial('gaussian',5);
img_new = imfilter(img,fspecial('gaussian',5,10),'replicate','same');

figure(1);
imshow(img)

figure(2);
imshow(img_new)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

discuz x2.5插件开发傻瓜图文教程,用demo说话

2019独角兽企业重金招聘Python工程师标准>>> 刚刚接触DZ的插件开发,记个傻瓜图文教程,一是分享给初学者,二是方便自己以后回忆。 本篇文章适合人群:有一定的PHP开发经验,想通过一个简单明了的demo快速了解…

uboot源码——gd_t 类型、bd_t 类型

bd_t、gd_t是u-boot中两个重要的数据结构,初始化操作中很多全局变量都要靠这两个数据结构来保存或传递。 两者分别定义在include/asm-arm/u-boot.h、include/asm-arm/global_data.h中。 一、bd_t 类型 struct bd_info 这个结构体类型,主要是用来保存板子…

代码抽象的三原则

软件开发是"抽象化"原则(Abstraction)的一种体现。 所谓"抽象化",就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。 开发软件的时候,一方面,我们总…

对图像高频信号和低频信号的理解

今天开始讲图像了,讲了很多在频域处理的方法,回来复习一下图像的频域。 一 、关于图像高频和低频 1.1 对图像高频信号和低频信号的理解 图像中的低频信号和高频信号也叫做低频分量和高频分量。 简单一点说,图像中的高频分量,…

关于开源中国手机App的说明

随着移动互联网大潮的快速发展,开源中国社区作为国内大型IT技术人员社区也推出了手机移动客户端,覆盖iOS,Android以及Windows Phone这三个手机平台。主要为了能让我们的用户能随时随地的与开源中国社区的用户进行交流与互动。我们需要App实现…

uva 11174(排列组合+搜索)

依然是liurujia计数练习题。依然是自己想没想出来,在MOD是素数的情况下除以x即为乘x的逆。这个真心以前没听过,用了这个方法后处理就变得十分巧妙。 整个程序步骤还是很清晰的,先上来算阶乘与逆(求数的逆还是有点没理解透&#xf…

将Source Insight的代码拷贝到word文档的方法

1、用Source Insight打开文件后,File->Print; 2、在 常规->选择打印机中,选择“Adobe PDF”(或者其他pdf打印机); 3、点确定,输出一个pdf文件了,然后去pdf文件里面复制代码&…

Oracle 学习笔记

2019_6_27日 星期四 第一章 oracle从入门到精通Laarry Ellison: 拉里.埃里森Bruce Scott: Tiger PointBase(WebLogic软件产品中附赠的数据库产品) 1.1 oracle安装oracle从实际的开发来讲,oracle11g是使用较多的,oracle的开发主要分为两类:.数…

引导滤波的opencv实现以及解释

参考: https://blog.csdn.net/qq_36006553/article/details/78594205

S5PV210的地址映射简介

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 S5PV210属于ARM Cortex-A8架构,是32位的CPU,有32根地址线和32根数据线。 这表明该CPU的寻址空间为4G,地址映射关系见下述。 S5PV210的地址映射 S5PV210的地址映射…

本杰明 富兰克林 道德13准则

富兰克林认为,好的习惯必须加以培养,坏的习惯必须打破。为了克服缺点,使自己少犯错误,他制定了13条道德准则。他说:“我打算获得这13种美德,并养成习惯。为了不致分散精力,我不指望一下子全做到…

树莓派(Raspberry Pi):完美的家用服务器

出处:http://linux.cn/thread/11884/1/1/ 树莓派(Raspberry Pi):完美的家用服务器 自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但…

无需删除D盘文件,将D盘空间分给C盘

做深度学习或机器学习的小伙伴,不知不觉就发现自己电脑C盘空间不够用了,但是D盘空间看着又很充裕,那么问题来了,怎么将D盘空间分给C盘呢,网上搜索了一圈,发现很多方法需要删除D盘文件才能将空间分享给C盘&a…

[NOI2019]回家路线

LOJ3156 题面就不放了 , 放一下数据范围 . 看到 \(n<2000,m<4000\) 就想到直接 \(dfs\) 到底 , 居然就过了前 \(4\)个 样例 , 最后一个要 \(2s\) . 后来写了 \(AB0\) 的 \(5\) 分 , 我知道写的是错的 , 还是交了以下这份代码 . ( LOJ 数据应该是官方数据 ) 得分 \(70\) .…

重定位——重定位的简介与操作(涉及位置无关码)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客&#xff1a;位置无关码、位置有关码 - biaohc - 博客园 一、链接地址与运行地址 1、链接地址 链接地址&#xff0c;是指程序员通过Makefile中“ -Ttext xxx ”或者在链接脚本中指定的地址…

前端手册

一直觉得前端开发缺个手册&#xff0c;这是个体力活。不过总得有人来干。 今天闲来无事&#xff0c;把一些工具(online和client的)、常用网址、以及经验总结等罗列出来和大家分享下。这个标题起地大了点&#xff0c;肯定会有很多地方没列到&#xff0c;包括类目的分法也可能考虑…

如何随机选取1000个关键字

Q:给定一个数据流&#xff0c;其中包含无穷尽的搜索关键字&#xff08;比如&#xff0c;人们在谷歌搜索时不断输入的关键字&#xff09;。如何才能从这个无穷尽的流中随机的选取1000个关键字&#xff1f; A:首先定义长度为1000的数组&#xff0c;将前1000个关键字放置到数组中。…

重定位——链接脚本的简介

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 链接脚本基本语法_Nerazzur的博客-CSDN博客_链接脚本语法&#xff08;推荐&#xff09; 链接脚本语法_ABCamus的博客-CSDN博客_链接脚本语法 链接地址、运行地址、加载地址、存储地址_嵌入…

OpenCV学习(27) 直方图(4)

我们可以利用OpenCV的直方图&#xff0c;backproject直方图和meanshift算法来跟踪物体。下面通过简单的例子来说明如何实现跟踪算法&#xff0c;我们有两幅狒狒的图片&#xff0c;如下图所示&#xff1a;我们首先在左图中框选狒狒的脸&#xff0c;计算出框选区域的色度(HSV空间…

IIS启用页面Gzip压缩实现说明

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。 HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。 压缩的最大好处就是降低了网络传输的数据量&#xff0c;从而提高客户端浏览器的访问速度。 当然&#xff0c;同时也会增加一点点服务器的负担。G…