我正在尝试实现本文中描述的算法:
以下是该算法的解释:
我们
N用采样频率记录了一系列连续的散斑图像fs.通过这种方式,可以观察像素如何通过N图像进化.该演变可以被视为时间序列并且可以以下面的方式处理:对应于每个像素的演变的每个信号被用作一组滤波器的输入.先前将强度值除以它们的时间平均值,以最小化物体的反射率或照度的局部差异.可以充分分析的最大频率取决于采样定理和采样频率的一半fs.后者由CCD相机,图像大小和帧抓取器设置.滤波器组如图1所示.
在我们的例子中,使用了10个5阶巴特沃斯滤波器,但是这个数量可以根据所需的区分来改变.该银行使用MATLAB软件在计算机中实现.我们选择了Butter-worth过滤器,因为除了简单之外,它还是最平坦的.可以使用其他滤波器,无限脉冲响应或有限脉冲响应.
借助于该滤波器组,获得每个临时像素演变的每个滤波器的十个对应信号作为输出.然后计算每个信号的平均能量Eb:
其中
pb(n)对于滤波器的第n个图像中的滤波的像素的强度b通过其平均值分割N是图像的总数.以这种方式,En获得每个像素的能量值,每个下摆属于图1中的一个频带.利用这些值,可以构建活动对象的十个图像,每个图像显示在某个频带中有多少时变斑点的能量.对结果中灰度级的错误颜色分配将有助于区分.
这是我的MATLAB代码基础:
for i=1:520
    for j=1:368
        ts = [];
        for k=1:600
            ts = [ts D{k}(i,j)]; %%% kth image pixel i,j --- ts is time series
        end
        ts = double(ts);
          temp = mean(ts);        
           if (temp==0)
                for l=1:10
                    filtImag1{l}(i,j)=0;
                end
                continue;
           end
         ts = ts-temp;          
         ts = ts/temp;    
        N = 5; % filter order
        W = [0.0 0.10;0.10 0.20;0.20 …