mask调试matlab,matlab滤波mask的构造程序设计

虽说用matlab一年多了,但是对于matlab的精髓感觉还是没有完全领会,始终在用C++的思想在编写matlab的程序。这样的方式导致了,matlab编写效率底,失去了很多对matlab特性的应用。

最近仔细研究了一篇CVPR中的一篇文章《Image Matching Using Local Symmetry

Features》,并且对论文所开放的代码进行了解析,目的是通过学习他人的代码,熟悉matlab如何编写这一类的程序。可以说收益非浅,在别人的代码中,很多细节地方的处理非常的巧妙,要是让我来写,肯定不会这样的简洁。打算写几篇笔记性的文章,把其中的一些matlab的设计技巧做一整理,我想这些资料在我将来做程序的时候是会经常用到,并且能事半功倍。

matlab滤波器模版的生成技巧。

如何通过一个给定大小 n 的模板来对一个权值分布函数进行采样,得到自己想要的滤波mask?

在C语言中,最常用的方法是对于i,j进行给定采样间隔循环对函数进行采样,最后得到mask。而matlab中可以使用meshgrid()函数生成采样网格,

linspace()函数直接生成x方向和y方向的采样向量。举例来说,要得到一个对函数

r = sqrt(x^2+y^2),  sig = 1/12,

w = exp(-(r-0.75)^2)/(2*sig^2),

进行k_width x k_width 的模版采样后得到的mask。程序不用循环,可以这样:

>>[x,

y] = meshgrid(linspace(-1,1, k_width));

>>r =

sqrt(x.^2 + y.^2);

>>sig

= 1/12;

>>w =

exp(-(r - 0.75).^2/(2 * sig^2));

>>w =

w - min(w(:));

>>w =

w / sum(w(:));

可以看到程序设计非常的简单,只因对的函数对应在了对的位置。这就是matlab的魅力。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值