【发布时间】:2014-03-25 23:24:40
【问题描述】:
我目前正在编写一个程序来跟踪在一个小房间里运行的苍蝇,我想要的是苍蝇中心的 XY 坐标。
为此,我首先使用fspecial('gaussian',[30 30],100) 和imfilter 使用高斯过滤器过滤每一帧,以获得苍蝇所在的白色“云”。我需要这个来减少苍蝇中心的噪音。
我使用im2bw 将结果转换为具有一定阈值的二进制图像,以从上述云中获取白色斑点。
为了获得坐标,我使用regionprops 来找到白色斑点的质心。
它已经运行良好,但需要很长时间——30 分钟的视频大约需要 6 小时;不过帧速率是 100 fps。
我发现高斯滤波占用了大部分时间 - 我可以以某种方式调整这个过程吗?
我读到了conv2,据说它更快,但它不适用于二进制图像,是吗?并且将我的二进制图像转换为单张或双张会弄乱它们。
我已经在其他级别上研究过代码的性能,例如调整搜索窗口等,所以我可以评估剩下的就是过滤。
提前致谢
【问题讨论】:
标签: performance matlab filter gaussian