2

我一直在努力根据从角度 0 到 360 顺时针到质心的距离从形状中提取时间序列。

我的实现根据它们与 [1,0] 的角度来排列轮廓点,向量可能对某些形状有好处,但对于有很多关节的形状没有用。考虑以下代码:

im = Image.open(os.path.join(路径,文件名))

im = im.filter(ifilter.MedianFilter)

contim = im.filter(ifilter.CONTOUR)

contim = contim[1:-1,1:-1] # 这是因为这里的边界被提取为轮廓

contpts = np.where(cont ==0)

contpts = np.vstack((contpts[0],contpts[1])) # 只需要将这些点相对于形状的质心顺时针排列

谁能指导我如何从任何形状中提取该特征,我可以从一个点开始并沿着轮廓继续提取到形状质心的所有距离。

有关该功能的更多信息,请查看本文:“LB_Keogh Supports Exact Indexing of Shapes under Rotation Invariance with Arbitrary Representations and Distancemeasures”

4

1 回答 1

0

如果我理解的话,离散平面中有一个几何图形,表示为矩阵。如果条目为 1,则您在图中。如果它是 0,那么你在外面。他想为边缘中的所有点确定图形边缘和图形中心之间的距离。他用极坐标系对其进行了参数化。图形的中心是原点,现在他想得到到边界的距离作为角度的函数。这就是他所说的“时间序列”。

这个对吗?

如果是的话,你不能:

1. determine the center of mass,
2. reposition the origin to match the center of mass. 
3. start angle at 0
4. r = 0
5. for each angle in [0,1,...,360] 
      1. If you're in inside the figure, increase r until you reach the border. 
      2. If you're outside the figure, decrease r until you reach the border.
      3. When you reach the border, d(angle) = r

如果图形具有或多或少连续的边界,这将遵循轮廓。

这行得通吗?

于 2011-12-24T16:01:44.133 回答