EDA365电子论坛网
标题: 利用MATLAB实现线性空间滤波 [打印本页]
作者: haidaowang 时间: 2020-1-3 09:39
标题: 利用MATLAB实现线性空间滤波
本帖最后由 haidaowang 于 2020-1-3 09:41 编辑
1 n6 |* P$ {1 S) W% v0 [+ ?: W6 d! Y
在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
2 W& Q% g' y* `/ D
! j$ M: i$ H" e5 p: h8 U- E% D! Tclose all;/ |. r" F) y) s5 h
clear all;( w# a8 X8 ^, l- x3 B4 R
clc;
" _7 f8 B5 |8 u+ Kp = imread('ayst.jpg');9 K0 q* C1 T8 w" _! y# q
a1 = p(:,:,1);%只取彩色图像的R分量' O+ G& h0 ^ t9 y
J=imresize(a1,[512,512]);%将图像压缩为512*512
5 G5 B( Q0 l8 t# H' cfigure,imshow(a1);
: D6 Q& m' w" C$ lfigure;8 x6 a. F h" z8 l( w2 ^5 D
imshow(J);$ K8 C& [) w5 @* I
w = ones(31);
/ z8 M( a: ]/ e% iJ = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
. l" O7 r) l9 z) ~1 |, X3 Fgd = imfilter(J,w);, r X3 F. a7 E
gd = gd./(31*31);%均值滤波,要除以模板大小31*31
, {8 `, F- Q4 I+ b% kfigure,imshow(gd,[]);
# P7 [$ Q2 l. N' b
0 J7 p6 ^ U! A. C" h1 d经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。5 w! y; ?( v/ \5 q, _/ I5 t7 f" S
5 {( [& a& F- D, P' l% |! L在matlab中进行图像的空间滤波时,需要将图像转变为固定像素值,用以下方法即可:
I=imread('wzz.jpg');2 [0 _- T3 X" G* f" ]' n
J=imresize(I,[256,256]);%将图像压缩或者扩展为256*256
8 {/ g) k, A9 w$ Uimshow(I);, o8 a5 h, \( W$ c% z7 ~
figure;0 ^" q$ Y6 d# Z" P8 `
imshow(J);
, H$ ^; B: [0 g$ ?8 S
0 X3 t0 D; r8 j: v7 E- H" ?' U0 W& T+ X! k4 W8 Y7 h
4 M$ V- `$ u- _9 X( B
& C; P+ L+ W0 A- x I2 ?& p) U
作者: ExxNEN 时间: 2020-1-3 18:07
利用MATLAB实现线性空间滤波
作者: xixihahaheihei 时间: 2020-1-6 18:39
MATLAB尽然可以实现线性空间滤波
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) |
Powered by Discuz! X3.2 |