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用于处理边界充零问题,边界的大小由滤波器的大小确定。具体参数选项见下表:

选项
描述
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:

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

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);

%生成一个8x8的均值滤波器
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('彩色图像平滑处理');


  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值