Python 我应该使用numpy进行图像处理程序吗?为什么?

Python 我应该使用numpy进行图像处理程序吗?为什么?,python,arrays,image-processing,numpy,Python,Arrays,Image Processing,Numpy,有什么理由让我在图像处理程序中使用numpy来表示像素,而不仅仅是将值存储在我自己的数字数组中?目前我正在做后者,但我看到很多人在谈论使用numpy将像素表示为多维数组。除此之外,还有什么理由让我使用numpy而不是我自己的实现吗?我想你可以这样做,但可能不太方便。原因可能是: numpy支持所有矩阵操作,而且由于经过优化,速度可能会快得多(您也可以切换到OpenBLAS,使其速度惊人地快)。对于图像处理问题,在一些图像变大的情况下,可能对速度要求很高 numpy有许多有用的函数句柄,例如用于傅

有什么理由让我在图像处理程序中使用numpy来表示像素,而不仅仅是将值存储在我自己的数字数组中?目前我正在做后者,但我看到很多人在谈论使用numpy将像素表示为多维数组。除此之外,还有什么理由让我使用numpy而不是我自己的实现吗?

我想你可以这样做,但可能不太方便。原因可能是:

  • numpy支持所有矩阵操作,而且由于经过优化,速度可能会快得多(您也可以切换到OpenBLAS,使其速度惊人地快)。对于图像处理问题,在一些图像变大的情况下,可能对速度要求很高

  • numpy有许多有用的函数句柄,例如用于傅立叶变换的
    numpy.fft
    ,或用于卷积的
    numpy.conv
    。这可能是图像处理的关键

  • 所有模块或包几乎都基于numpy,例如scipy、graphlab和matplotlib。例如,您应该使用“import matplotlib.pyplot as plt;plt.imshow()'显示图像;其他一些数组很难被接受为参数


  • 如果您正在研究Python中的图像处理,那么一定要研究以下内容:


    通常,numpy更高效,尤其是在计算方面。因为它是在cython中实现的。如果您只需要存储阵列,我不确定numpy是否有这么大的区别。这个问题可能太广泛了,无法给出一个好的答案。numpy优于普通python对象的原因有很多,例如,计算速度通常更快,numpy数组占用的内存更少,numpy具有许多高效的算法。但最终这取决于你必须解决的问题。