1

我正在编写一个 android 应用程序,它扫描图像并从所述图像创建一种直方图,然后允许用户拖动预定义点数的基线。我已经完成了这些部分,但现在我需要能够估计扫描图像中大约 1000 个点与用户定义的基线之间的积分,该基线由任意数量的点组成,在设定的时间间隔内(可能由决定最大值/最小值和拐点位置的算法)。每个点数组定义一条线。

是否有任何现有的库可以采用 Point[] 数组并找到两条线之间的估计区域?还是我需要自己编写一个自定义算法来处理这个问题?我查看了 apache common math,但似乎需要传入一个数学函数才能找到积分。

编辑:
第 1 行是一个大约 1000 个点的数组(取决于图像分辨率) {(0,5),(1,10), (2,11), (3,9), ....(1000,12 )}

第 2 行可能是 5 个点(用户决定):{(0,5), (250,9), (500,7), (750,8), (1000,5)}

实际的 y 值会大得多,但这是一般的想法。

4

2 回答 2

3

I'm not sure if I completely understand what you want, but if you'd like to find the area of a polygon defined by points resulting from your image and those from the user drawing a baseline you could use this very simple equation for the area of a non-intersecting polygon

于 2011-07-27T14:46:15.747 回答
1

不知道我明白你想要什么。

但我想到了两件事:

如果要计算直方图的积分,可以从 n 个点 (xi,yi=f(xi)) 使用黎曼积分来获取值。

使用以下公式: 在此处输入图像描述

它们是黎曼积分的其他表示形式,例如梯形而不是直方图等...

例如,如果ti=(xi+xi+1)/2你会得到梯形

其他可能性:

您可以使用多项式来插入1000 个值。

您将获得一个函数 f ,对于您的所有 (xi,yi) 点,f(xi)=yi。

然后计算多项式函数的积分(很容易,因为你可以找到一个显式的原语)

示例

如果 P 是多项式

我是积分

p 的原语

I=p(xmax)-p(xmin)

笔记:

如果您有 2 行,只需将一个积分减去另一个积分。

希望我理解了这个问题并有所帮助

于 2011-07-27T14:38:30.550 回答