试图了解NumPy的linalg.norm方法

时间:2013-05-26 20:29:08

标签: python image-processing numpy

我不明白这段代码是做什么的。 X是矩阵,其每一行是图像的特征向量。规范做了什么?

   # Take an eigenvector and make it into an image
    def vecToImage(x, size = lfw_imageSize):
      im = x/np.linalg.norm(x)
      im = im*(256./np.max(im))
      im.resize(*size)
      return im

1 个答案:

答案 0 :(得分:1)

问题documentation很清楚。您将ord参数的None传递给linalg.norm(),以便获得Frobenius规范。

代码似乎是通过除以标准来规范化输入。然后似乎很难尝试扩展到具有8位颜色值。但是代码会扩展到0到25​​6而不是0到255。

然而,第一步对我来说似乎毫无意义。代码可以简单地读取:

im = x*(256./np.max(x))      

但也许应该是255而不是256。

由于我们这里没有上下文,我不愿意声明代码是错误的。只有你能够决定,因为只有你知道背景。