我目前正在编写一个程序来跟踪在一个小房间中运行的飞行,我想要的是飞行中心的XY坐标。 为此,我首先用高斯滤波器使用fspecial('gaussian',[30 30],100)
和imfilter
对每个帧进行滤波,以获得苍蝇所在的白色“云”。我需要这个来减少飞行中心的噪音。 我使用具有一定阈值的im2bw
将结果转换为二进制图像,以从上述云中获取白色斑点。 为了获得坐标,我使用regionprops
来找到白色斑点的质心。 它已经可以正常工作,但它需要很长时间 - 30分钟的视频需要大约6小时;但帧速率为100 fps。(Matlab)在二进制图像上使用imfilter进行高斯滤波的性能
我已经发现高斯滤波占用了大部分时间 - 我可以调整这个过程吗? 我读了约conv2
,据说这是更快,但它不适用于二进制图像,是吗?并将我的二进制图像转换为单或双混淆它们。
我已经在其他级别上调试过代码的性能,比如调整搜索窗口等等,所以过滤就是我所能评估的。
在此先感谢
以下是一个示例图片: http://i.imgur.com/ 7YlMKpz.png 这是双(图片)所做的: http://i.imgur.com/7kctYTs.png – user3459888
您的第一张图像对我来说不是二元的,更像是灰度。 –
@ user3459888您在第二幅图像中看到的是范围转换突出显示的噪音。它也存在于你的原始图像中。使用阈值来摆脱它(请参阅我的编辑)。 –