imfilter使用方法

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 用

功能:对任意类型数组或多维图像进行滤波。
用法: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用于处理边界充零问题,边界的大小由滤波器的大小确定。具体参数选项见下表:



选项

描述

filtering_mode

‘corr’

通过使用相关来完成,该值为默认。



‘conv’

通过使用卷积来完成

boundary_options

‘X’

输入图像的边界通过用值X(无引号)来填充扩展
其默认值为0




‘replicate’

图像大小通过复制外边界的值来扩展



‘symmetric’

图像大小通过镜像反射其边界来扩展



‘circular’

图像大小通过将图像看成是一个二维周期函数的一个周期来扩展

size_options

‘full’

输出图像的大小与被扩展图像的大小相同



‘same’

输出图像的大小与输入图像的大小相同。这可通过将滤波掩模的中心点的偏移限制到原图像中包含的点来实现,该值为默认值。


举例:

例1:

originalRGB = imread(‘peppers.png’);

imshow(originalRGB)
h = fspecial(‘motion’, 50, 45);%创建一个滤波器
filteredRGB = imfilter(originalRGB, h);

figure, imshow(filteredRGB)



例2:

%生成一个8×8的均值滤波器

originalRGB = imread(‘peppers.png’);

imshow(originalRGB)


w = fspecial(‘average’,8);
filteredRGB = imfilter(originalRGB, w);

figure, imshow(filteredRGB)




例3:
单色图像的平滑
单色图像(如灰度图像)平滑的过程:定义一个系数为1的模板,用这个空间模板的系数去乘以所有像素的值,并将结果除以模板中元素的总数。


彩色图像的平滑:
1、抽取图像:I(R、G、B)三幅分量。


    >>fR = I(:,:,1);
    >>fG = I(:,:,2);
    >>fB = I(:,:,3);


2、 (1): 分别对(R、G、B)这三幅图像分量进行滤波。例如:平均滤波器 w = fspecial(‘average’, 25); 来进行平滑处理。     
    >>fR_filtered = imfilter(fR, w, ‘replicate’);      
    >>fG_filtered = imfilter(fG, w, ‘replicate’);      
    >>fB_filtered = imfilter(fB, w, ‘replicate’);
    (2):也可以对(R、G、B)这三个图像分量一起处理,不用进行第三步。
>>fc_filtered = imfilter(I, w, ‘replicate’);   


3、重建滤波后的 RGB 的图像。
    >>fc_filtered = cat(3, fR_filtered, fG_filtered, fB_filtered)


例子程序:


close all
clear all
clc
I = imread(‘olivian.jpg’);      %读取一张噪声图像



%提取图像的三个(R、G、B)分量图像
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);


%生成一个8×8的均值滤波器

w = fspecial(‘average’,8);


fR = imfilter(R,w,’replicate’);
fG = imfilter(G,w,’replicate’);
fB = imfilter(B,w,’replicate’);
fc_filtered = cat(3,fR,fG,fB);   %将这四个句子可以改为:fc_filtered = imfilter(I, w, ‘replicate’);


figure
subplot(121);
imshow(I);title(‘彩色噪声图像’);
subplot(122);
imshow(fc_filtered,’Border’,’tight’);title(‘彩色图像平滑处理’);












版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221582.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:46
下一篇 2026年3月17日 下午5:46


相关推荐

  • Pycharm运行python程序时提示:PermissionError: [Errno 13] Permission denied

    Pycharm运行python程序时提示:PermissionError: [Errno 13] Permission denied凡是涉及 win 系统组件的程序 都要以管理员身份运行 PyCharmPermi Errno13 Permissionde 就是用户权限不够 PermissionEr Errno13 Permissionde 就是用户权限不够 PermissionEr Errno13 Permissionde 就是用户权限不够

    2026年3月17日
    2
  • Redis cluster集群:原理及搭建

    Redis cluster集群:原理及搭建1 为什么使用 redis redis 是一种典型的 no sql 即非关系数据库像 python 的字典一样存储 key value 键值对工作在 memory 中所以很适合用来充当整个互联网架构中各级之间的 cache 比如 lvs 的 4 层转发层 nginx 的 7 层代理层尤其是 lnmp 架构应用层如 php fpm 或者是 Tomcat 到 mysql 之间做一个 cache 以减轻 db 的压力因为有相当一部分的数据只是简单的

    2026年3月18日
    2
  • Apache 配置ssl证书

    Apache 配置ssl证书1.首先确保已经安装了apacherpm-qa|grephttpd:查询版本,如果能查出版本则说明已经安装了2.安装ssl模块#yuminstallmod_ssl-yPs:安装完成后,会在/etc/httpd/conf.d/下生成一个ssl.conf配置文件。3.新建一个目录用来放ssl证书文件#mkdir/etc/httpd/ssl/上传证书到此目录下4.编辑修改ssl配置文件DocumentRoot”/var…

    2022年7月14日
    29
  • HDU 3468 Treasure Hunting(BFS+网络流之最大流)

    HDU 3468 Treasure Hunting(BFS+网络流之最大流)

    2021年12月4日
    46
  • 一切从现在开始

    大一马上就结束了,有一些收获,但是与自己期望的还是有很大的差距,自己反思的话是执行力不够,今天在csdn上又看到了一些很有励志意义的博客,很有动力,我会努力的。跟着前辈们的足迹,我要继续走下去了,在程序员这条路上吧,虽然学的是物联网,但是对编程很感兴趣,暂时顶下自己的方向就是程序员了。这学期学习了c++,虽然寒假里就自学了,但是再看一遍的收获还是很大的。马上就考试了,先不长篇大论,这就

    2022年3月11日
    38
  • Tomcat 的安装与环境配置教程(超详细)

    Tomcat 的安装与环境配置教程(超详细)Tomcat的安装与环境配置教程目录1、下载Tomcat2、添加环境变量3、启动Tomcat4、Q&A(重要)5、后记1、下载Tomcat1>官网:ApacheTomcat®-ApacheTomcat9SoftwareDownloads这里我选择的是Tomcat9.064bitWindows(如图紫色框中所示)2>解压(记住存放目录):3>查看Tomcat的目录结构:2、添加环境变量1>右…

    2022年5月23日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号