我正在尝试实现本文中描述的算法:
以下是该算法的解释:
我们
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 …Run Code Online (Sandbox Code Playgroud) 我正在使用raphaelJS绘制一个"雷达图表"来显示统计数据.对于每个轴,它应接受0到10之间的值.
例如,多边形的值,其中心点位于图表的中心[10,10,10,10,10].简单...
但是,可能会发生数据如下所示:
[26, 14, 48, 18, 1],
[ 3, 14, 8, 9, 5],
[10, 6, 4, 16, 3]
Run Code Online (Sandbox Code Playgroud)
这导致了这一点(显示多边形的中心点位于图表的左下方):

如果我根据其最大值(在这种情况下为48)对数据进行标准化,则所有其他中心点将太靠近图表的中心,并且其信息值将大约为0.
相同的数据根据其最大值进行标准化:
[5.42, 2.92, 10, 3.75, 0.21],
[0.63, 2.92, 1.67, 1.88, 1.04],
[2.08, 1.25, 0.83, 3.34, 0.63]
Run Code Online (Sandbox Code Playgroud)

所以现在所有其他中心点都聚集在图表的中心,并且已经失去了所有的解释力......如果有超过3个中心点,它们很可能会相互重叠.

我正在考虑一种显示每个多边形的相对方式,而不会在每个多边形之间失去太多关系,如果可能的话......
任何想法如何做到这一点,或者可能是另一种方法如何规范化?