史蒂夫与MATLAB图像处理

图像处理的概念、算法和MATLAB

在MATLAB计时代码

当我们工作在提高图像处理的速度函数在MATLAB中,我们自然是感兴趣的时间测量。我们知道客户往往时间自己的代码,通常通过使用MATLAB函数抽搐toc。结果却很难得到可靠的、可重复的时间测量在现代电脑。这是适用于任何程序,而不仅仅是MATLAB。我写计时代码很多不同时期多年来,使用各种方法。一路上我学到的一些重要的提示和陷阱的人克里夫硅藻土和比尔McKeeman。去年年底我正在YABP(另一个基准程序),我想知道如果我可以封装至少其中一些建议计时器效用函数,任何人都可以不假思索地使用太难或做出太多的选择。结果是这个函数timeit.m,你可以找到在MATLAB中央文件交换。时间接受一个输入参数,并返回一个输出参数:
s =时间(f)
f是一个函数处理,年代是时间,以秒为单位,需要调用这个函数处理。时间调用f没有输入参数。使用时间成功,是非常有用的知道怎么做匿名函数处理。这里是几个例子:多少时间才能计算(一个求和。”。* B, 1),在那里一个由- 400和12000 -B是400 - 12000吗?
一个=兰德(12000、400);B =兰德(400、12000);f = @()和(A。”。* B, 1);时间(f)
ans = 0.1125
多少时间才能扩张文本。png图像与25-by-25宰杀结构化元素?
bw = imread (“text.png”);se = strel((25日25));g = @ () imdilate (bw, se);时间(g)
ans = 0.0037
这个函数时间设计自动处理时机三个关键问题:
  • “热身”要定时的功能,为了消除一次性影响相关文件系统、记忆系统,m文件解析和优化等。
  • 适应的粒度计时器功能抽搐toc时间这通过调用f在一个“内循环”,内循环重复的数量,每个调用抽搐/toc措施至少约0.01秒的时间间隔。适当数量的内循环重复自动确定。
  • 运行一个“外循环”,内循环的调用和倍一组重复试验。中位数时间试验用于计算估计的时间。
而且,由于调用f所有发生在一个函数,大变化与时间相关的代码从命令提示符将被淘汰。函数是不完美的,和其他人比我可能做出不同的选择。例如,你可以认为我应该使用的最短时间,而不是平均时间时间试验。我选择中值,因为在我的经验中我发现,它需要更少的重复利用中得到一个可重复的结果。同时,时间将调用f至少13倍,这可能是多一些执行长时间运行的功能所必需的。如果你感兴趣的问题和技术相关的性能测量,尤其是在MATLAB,那么我强烈建议您阅读比尔的白皮书性能度量。如果你有关于改善时间听到这些,我会很感兴趣。

使用MATLAB®7.5发表

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。