我有$ n $个表面:$ z_i(x,y)$,每个表面上都有一个测量属性(变量):$ a_i(x,y)$。大多数表面将在整个表面上具有随机分布的属性,但是某些表面(有趣的表面)将显示出蜿蜒的河流模式:



我需要您可以帮助我们找到一个可以告诉我们哪个$ n $曲面最有可能具有这种图案的度量。

有许多可能的地图具有相同的直方图,如下所示;因此该度量需要“奖励”空间连续性。
为了说明这一点,我创建了一个随机图像,其直方图与河流图像几乎相同:

图像统计ala熵可能只是解决方案的一部分。

下面是一个没有蜿蜒河流图案的图像示例:


我的图像是合成的(在Matlab中)。在现实生活中,没有图案的图像可能会以相似值的小斑点的形式具有更多的空间连续性。

以下是灰度图像:



评论

您可以发布实际图像(没有轴,调色板,直方图,因此我们可以尝试其他算法)。另外:“蜿蜒的河流”实际上是正弦波,还是可以有任何形状?

嗨,妮基。在我的示例(Matlab中的综合数据)中,河流是一条正弦波。在现实生活中,它是“正弦似的”。有时它会偏离中心线,有时不会。

#1 楼

一种非常简单的措施是将图像中的每一行与其上方的行进行比较,从而允许一定水平移动。

我在Mathematica中将这种简单的算法结合在一起:

Mean[MapThread[
  Function[{line1, line2},
   Min[Table[Norm[line1 - RotateLeft[line2, shift]], {shift, -5, 5}]]
   ], {s[[2 ;;]], s[[;; -2]]}]]


它简单地获取每一对相邻的行,将其中一个行旋转-5..5像素,并采用最小的欧几里德距离。对于每一行对,这产生一个欧几里德距离。我只是简单地取平均值(但根据您的实际数据,平均值或中位数被截断可能会更可靠)。

这些是我人工生成的样本得到的结果(公式:Normalize(随机噪声* (1因子+信号*因子))



如果将结果与信号强度作图,该算法似乎可以测量“蜿蜒河道信号强度”很好:



编辑:我忘了归一化输入样本。修复了上传的新结果图像

评论


$ \ begingroup $
好答案。但是,我认为您的度量可以被其他连续曲线(例如直线)所欺骗。我将通过更改最后一步以将正弦拟合到您发现的(x,y)点(具有一定幅度,相位和频率)来稍微改善一下。然后,振幅可以用作“河道强度”的测量。
$ \ endgroup $
– Andrey Rubshtein
2012年10月6日10:58



#2 楼

该直方图似乎在正确的轨道上。如果这是样品中的代表性图像,则该直方图表明,仅通过检查图像中是否包含某个阈值以上的值,即可检测到存在曲折图案的图像。

除此之外,您还可以可以尝试获取每个图像的熵。这样一来,每个图像便可以表征其随机性。之后,您可以获取图像熵的直方图。如果确定将图像清楚地分为“完全随机”和“平均随机”(即随机性较低),则熵的直方图将是双峰的。左模式将对应于具有较低熵的图像,因此对于右模式将具有较小的随机性(更可能包含曲折模式),反之亦然。

(BTW MATLAB包括相关函数)

编辑:作为对OP注释的回应,并随后上传了有关该问题的更多信息,这是此答案的另一点:

熵仍然可以工作,但不是简单的由Shannon公式描述的无内存情况(假设一个时间序列的每个样本都独立于先前的样本)。

作为一种更简单的选择,您可以尝试检查图像自相关的特征。

评论


$ \ begingroup $
嗨,A_A。我认为图像统计是解决方案的一部分,但需要以某种方式加权相邻像素以奖励空间连续性(请参见上面的“随机属性图”)。
$ \ endgroup $
–安迪
2012年6月1日上午11:24

$ \ begingroup $
您好,我同意并扩大了答案。
$ \ endgroup $
– A_A
2012年6月1日上午11:51