【问题标题】:time series for binary shapes二进制形状的时间序列
【发布时间】:2012-01-10 12:28:45
【问题描述】:

我一直在努力根据从角度 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(contim ==0)

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

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

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

【问题讨论】:

  • 请更准确地指出您的问题是什么,因为我不知道您正在查看的问题。另外,这个问题也不是很好提出来的。
  • 已根据您的要求进行编辑。
  • 如果您能用通俗易懂的语言解释您要完成的工作,将会很有帮助。你的输入是什么,你的输出是什么,算法的步骤是什么......我们不需要阅读论文来理解你的问题。
  • 如果我理解的话,离散平面中有一个几何图形,表示为矩阵。如果条目为 1,则您在图中。如果它是 0,那么你在外面。他想为边缘中的所有点确定图形边缘与图形中心之间的距离。他用极坐标系对其进行了参数化。图形的中心是原点,现在他想得到到边界的距离作为角度的函数。这就是他所说的“时间序列”。

标签: python numpy scipy time-series contour


【解决方案1】:

如果我理解的话,离散平面中有一个几何图形,表示为矩阵。如果条目为 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

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

这行得通吗?

【讨论】:

  • 如果我理解正确,这不适用于人体或动物等形状,因为存在与质心 x 轴具有相同角度距离的边界点。跨度>
猜你喜欢
  • 2020-08-03
  • 1970-01-01
  • 2022-01-22
  • 2021-03-13
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
相关资源
最近更新 更多