Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图理解NumPy';s-linalg.norm方法_Python_Image Processing_Numpy - Fatal编程技术网

Python 试图理解NumPy';s-linalg.norm方法

Python 试图理解NumPy';s-linalg.norm方法,python,image-processing,numpy,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 在这件事上情况很

我不明白这段代码在做什么。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
在这件事上情况很清楚。您将ord参数的None传递给linalg.norm(),因此得到Frobenius范数

代码似乎正在通过除以范数来规范化输入。然后,它似乎试图缩放为8位颜色值,但效果不佳。但是代码的范围是0到256,而不是0到255

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

im = x*(256./np.max(x))      
但也许应该是255而不是256


因为这里没有上下文,所以我不愿意声明代码是错误的。只有你才能做出决定,因为只有你知道上下文。

是的,但这里发生的直觉是什么。我不太懂弗罗贝尼乌斯·诺姆的数学……我对代码没有直觉。你从哪里弄来的?我不知道输入是什么。矩阵有特征向量,我不太确定图像作为矩阵有什么意义。我以为你想知道诺姆做了什么?诺姆做了什么?这个计算是为了什么?广义地说,标准是衡量一个物体有多大的尺度。Abs()是标量最常见的规范。对于向量,有L1、L2、Linfinity范数等等。最常见的是L2,即欧几里德范数。在代码中,使用norm是毫无意义的。