EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
% g$ S% {# `! R3 m+ u) m& x6 y$ d; O- c: b! Y( M6 u
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
3 E7 B# u" O1 X7 t; a0 g! q' K" ]2 Y$ `& h: W
close all;
# Z6 a& h+ @4 U# }& P5 i) V7 o8 Bclear all; b0 K2 ]( Z% c1 o) d+ f( p* ~
clc;; y" ?: J* s7 `5 e
p = imread('ayst.jpg');
3 F' c. d% q4 [2 Ba1 = p(:,:,1);%只取彩色图像的R分量
4 h2 v5 P! J) U( E$ yJ=imresize(a1,[512,512]);%将图像压缩为512*512) P5 E9 Y' G' t3 r, K! f
figure,imshow(a1);
, v2 B) u$ F8 ]# D2 ffigure;- M7 C5 r2 F8 I8 s8 U% q
imshow(J);
, _; U/ [6 T! K6 t/ o. Pw = ones(31);* f% \# P5 A8 D& G3 U- k4 y; b
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
" p, L3 N N# Q+ rgd = imfilter(J,w);
t# i6 ?, V& {* rgd = gd./(31*31);%均值滤波,要除以模板大小31*31
. O, J+ I; V# h/ Pfigure,imshow(gd,[]);
2 d1 P3 v6 f* X4 \+ ?, \
" v! v2 n/ G1 E% Y, s经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。2 ~" P8 u9 v. ?$ A, O
1 x' c: O; d0 a' J) V/ |2 K) `
在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可: I=imread('wzz.jpg');# X C0 P4 N. j+ Y2 H8 J( ]% N+ h
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*256
$ |- i. |; {% A6 F' Z% rimshow(I);3 a% X* x w( k# m' L r1 \
figure;
[) a M3 u( Y6 Uimshow(J);
- L+ M+ n" J7 A) I4 Y! w5 C7 n& [& C$ f9 l5 A# y
5 `8 K* G, i H, w7 W3 u9 r5 S
- Q& S+ [- q4 b$ v8 Q
) n' U9 ]4 B/ v8 S5 m. ~
|