matlab高斯滤波自定义函数怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab高斯滤波自定义函数怎么做相关的知识,希望对你有一定的参考价值。

matlab中有自带的高斯滤波函数h
=
fspecial('gaussian',
hsize,
sigma),其中hsize是滤波器尺寸,sigma是标准差。
若要自己实现的话:
function
h
=
gau_fil(
hsize,
sigma)
siz
=
(hsize-1)/2;
[x,y]
=
meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg
=
-(x.*x
+
y.*y)/(2*sigma*sigma);
h
=
exp(arg);
h(h<eps*max(h(:)))
=
0;
sumh
=
sum(h(:));
if
sumh
~=
0,
h
=
h/sumh;
end;
end
调用时在command
window输入:(例如大小为3*3,标准差1)
gau_fil([3
3],
1)
得到结果:
ans
=
0.0751
0.1238
0.0751
0.1238
0.2042
0.1238
0.0751
0.1238
0.0751
望采纳,谢谢!
参考技术A matlab中有自带的
高斯滤波
函数h
=
fspecial('gaussian',
hsize,
sigma),其中hsize是滤波器尺寸,sigma是
标准差

若要自己实现的话:
function
h
=
gau_fil(
hsize,
sigma)
siz
=
(hsize-1)/2;
[x,y]
=
meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg
=
-(x.*x
+
y.*y)/(2*sigma*sigma);
h
=
exp(arg);
h(h<eps*max(h(:)))
=
0;
sumh
=
sum(h(:));
if
sumh
~=
0,
h
=
h/sumh;
end;
end
调用时在command
window输入:(例如大小为3*3,标准差1)
gau_fil([3
3],
1)
得到结果:
ans
=
0.0751
0.1238
0.0751
0.1238
0.2042
0.1238
0.0751
0.1238
0.0751
参考技术B matlab中有自带的高斯滤波函数h
=
fspecial('gaussian',
hsize,
sigma),其中hsize是滤波器尺寸,sigma是标准差。
若要自己实现的话:
function
h
=
gau_fil(
hsize,
sigma)
siz
=
(hsize-1)/2;
[x,y]
=
meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg
=
-(x.*x
+
y.*y)/(2*sigma*sigma);
h
=
exp(arg);
h(h
评论
0
0
加载更多
参考技术C 给你个提示,最好自己去动手
1
先建立高斯算子
fspecial
2
滤波
imfilter

Matlab如何在模糊逻辑工具箱中自定义隶属度函数?

参考技术A 输入fuzzy 打开 模糊编辑器,就能编译了追问

我要的不是自带的隶属度函数。。。而是自己定义的函数。。。怎么才可以?

追答

你想定义成啥样的,自带的包括三角 梯形 高斯 以及他们的组合 应该 够你用的了,而且你可以对他们的 形状进行编译

追问

不够用。。。

参考技术B

以上是关于matlab高斯滤波自定义函数怎么做的主要内容,如果未能解决你的问题,请参考以下文章

Matlab如何在模糊逻辑工具箱中自定义隶属度函数?

C++ MFC 自定义函数中 给IDC_EDIT1 赋值,谢谢

MATLAB中卡尔曼滤波器的自定义运动估计模型

matlab怎么建立自定义函数

3.15matlab 高斯滤波,快速滤波

matlab 怎么循环plot自定义颜色?