fspecial()与imfilter()的使用

函数说明

fspecial():

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

imfilter():

用法:B = imfilter(A,H)
B = imfilter(A,H,option1,option2,…)
或写作g = imfilter(f, w, filtering_mode, boundary_options, size_options)其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。具体参数选项见下表:


举例说明:

t=imread('a2.jpg');%读取图片
h=fspecial('gaussian',5,3);%确定滤波方式为高斯滤波 5是模板大小  3是方差
t_1=imfilter(t,h);%滤波操作
imshow(t),title('原图');
figure,imshow(t_1),title('高斯滤波后');

效果图

对fspecial()的详细说明

滤波器的种类可以为:gaussian、average、disk、laplacian、log、prewitt

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

img=imread('a1.jpg');
figure,imshow(img),title('原图');
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');

效果图



均值滤波器

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

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

圆形均值滤波器

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

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

拉普拉斯滤波器

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

h1 =fspecial('laplacian')

拉普拉斯高斯滤波器

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

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

prewitt

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

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

sobel

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

>> h1 = fspecial('sobel')h1 =1     2     10     0     0-1    -2    -1

MATLAB--数字图像处理 fspecial()与imfilter()的使用相关推荐

  1. 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目

    基于matlab数字图像处理GUI代码 代码: function varargout = Image_processing_GUI(varargin) % IMAGE_PROCESSING_GUI M ...

  2. MATLAB数字图像处理系统[多功能]

    MATLAB数字图像处理系统[多功能] 目录 实验一 MATLAB数字图像处理初步 实验二 图像的代数运算 实验三 图像增强-空间滤波 实验四 图像分割 2 实验一 MATLAB数字图像处理初步 一. ...

  3. matlab fspeical,MATLAB数字图像处理.doc

    MATLAB数字图像处理 MATLAB常用图像操作 转换图像类型 例1.对一幅图像进行二值化处理,代码及结果如下: load trees BW=im2bw(X,map,0.4); imshow(X,m ...

  4. MATLAB说明图像增强,MATLAB数字图像处理(二)图像增强

    1         图像增强 1.1            直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: 1 2 3I2=histeq( ...

  5. 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识

    本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...

  6. Matlab数字图像处理——图像处理工具箱Image Processing Toolbox

    Image Processing Toolbox 图像处理工具箱包含的功能: 图像的读取和保存 图像的显示 创建GUI 图像的几何变换 图像滤波器设计及线性滤波 形态学图像处理 图像域变换 图像增强 ...

  7. Matlab数字图像处理——图像文件的读取

    文章目录 一.Matlab中获取图像信息的函数 imfinfo 二.Matlab读取图像文件的函数 imread 三.Matlab保存图像文件的函数 imwrite 完整目录 一.Matlab中获取图 ...

  8. matlab数字图像处理课程设计报告,数字图像处理初步-实验1

    MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...

  9. matlab对于处理数字图像的优点,学习MATLAB数字图像处理经验谈

    学习MATLAB数字图像处理经验谈 学习数字图像处理经验谈 (赵小川) 一.面向应用:层层分解.抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用 ...

  10. MATLAB数字图像处理(一)

    了解MATLAB数字图像处理 MATLAB全称是Matrix Laboratory (矩阵实验室) ,数字图像是以数字方式存储的图像.将图像在空间上离散.量化存储每一个离散位置的信息就可以得到简单的数 ...

最新文章

  1. python成长之路——第四天
  2. 每天学一点儿shell:linux中时间函数的date的用法
  3. Java Reflection(五):方法
  4. http://www.myexception.cn/web/426486.html
  5. sqlserver可视化工具_数据分析之基础分析工具篇(修订版)
  6. nssm和AlwaysUp来包装exe文件为windows服务
  7. react中form可以嵌套一个form吗_Ant-Design从v3升级到v4的Form适配
  8. VSTO项目的MSB3482错误
  9. android-circlebutton介绍
  10. 记HTML5 a 标签的一个小坑 1
  11. Android Studio类中实现Serializable自动生成serialVersionUID
  12. depends.exe 使用说明
  13. Python基础=== Tkinter Grid布局管理器详解
  14. 走着瞧Anbsp;Talenbsp;ofnbsp;Twonbsp;Donkeysnbsp;(200…
  15. SRAM、PSRAM、SPI FLASH初步认识
  16. 【有利可图网】PS教程:制作立体双色复古文字
  17. afdsafdsafdsaf
  18. 埃拉托色尼筛选法 C++实现
  19. 精读论文:Learning multiple visual domains with residual adapters(附翻译)
  20. 免费AWS EC2实例

热门文章

  1. 卫星通信的会议和期刊
  2. 计算机视觉 java 如何选择_计算机视觉中光源的选择
  3. 华硕windows10怎么安装c语言,华硕x441sc笔记本u盘安装win10系统教程
  4. linux data access monitor(DAMON)
  5. QT QLabel超链接
  6. 基于asp.net的最新版即时通讯聊天室系统
  7. mysql使用localhost可以连接,使用ip连接不上
  8. amlogic平台,给LatinIME输入法添加语言
  9. 红包来了!1000万数字人民币红包等你来拿!
  10. python输入框_python 输入框