【问题标题】:How would I translate this equation into code?我如何将这个等式转换为代码?
【发布时间】:2015-10-12 20:57:24
【问题描述】:

我在 Python 中工作,我试图为像素图计算 wight 矩阵,每个边的权重取决于它们的“特征”相似性(F(i) - F(j)),以及它们的位置相似性(X(i)-X(j))。 “特征”包括强度、颜色、纹理。

现在我已经实现了它并且它正在工作,但不适用于彩色图像。起初,我尝试简单地取一些 RGB 值并对每个像素进行平均,以将整个图像转换为灰度。但这并没有像我希望的那样奏效,我已经阅读了一篇提出不同方法的论文。

他们说要使用这个:F(i) = [v, v*s*sin(h), v*s*cos(h)](i)

其中 hsv 以及 HSV 颜色值。

我只是对符号感到困惑。这应该是什么意思?在方括号内用逗号分隔三个不同的术语是什么意思?我也对末尾的 (i) 应该是什么意思感到困惑。任何给定像素的 F(i) 的解决方案应该是单个数字,以便能够执行 F(i)-F(j)?

我不是要求有人为我做这件事,我只是需要澄清一下。

【问题讨论】:

标签: python colors rgb pixel hsv


【解决方案1】:

特征可以是vectors,你可以在向量之间计算distance

f1 = numpy.array([1,2,3])
f2 = numpy.array([0,2,3])
distance = numpy.linalg.norm(f1 - f2).

【讨论】:

  • 所以你是说 F(i) 不必是单个数字并且可以是向量形式,并且 F(i) - F(j) 仍然会给出单个数字?跨度>
  • Vector addition (或减法)仍然给出一个向量,但是您可以使用这个结果向量的 size 作为 single number 你有兴趣。
  • 我明白了,谢谢你的回答!因此,如果我正在考虑两个像素,每个像素都以具有三个值 ([R,G,B]) 的 numpy 数组的形式描述,我可以使用类似 numpy.linalg.norm(i - j)?
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • @MichelKeijzers 你是对的。我已经用说明意图的 Python 代码更新了我的答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多