【问题标题】:Shoud I use numpy for a image manipulation program? why [duplicate]我应该将 numpy 用于图像处理程序吗?为什么[重复]
【发布时间】:2015-01-16 15:40:33
【问题描述】:

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

【问题讨论】:

  • 一般来说,numpy 在计算方面效率更高。因为它是在 cython 中实现的。如果您只需要存储数组,我不确定 numpy 会产生如此大的不同。
  • 这个问题可能过于宽泛,无法给出一个好的答案。为什么 numpy 可以优于普通的 python 对象有很多方面 - 例如。计算通常要快得多,numpy 数组占用更少的内存,并且 numpy 带有许多有效的算法。但最终这真的取决于你要解决的问题。

标签: python arrays image-processing numpy


【解决方案1】:

如果你正在研究 Python 中的图像处理,你绝对应该看看这个:

http://scipy-lectures.github.io/advanced/image_processing/index.html

【讨论】:

    【解决方案2】:

    好吧,我认为您可以这样做,但可能不太方便。原因可能是:

    1. numpy 支持所有矩阵操作,并且由于它经过优化,可以更快(您也可以切换到 OpenBLAS 以使其更快)。对于图像处理问题,在某些图像变大的情况下,可能对速度要求很高。

    2. numpy 有很多有用的函数句柄,例如用于傅里叶变换的numpy.fft,或用于卷积的numpy.conv。这可能对图像处理至关重要。

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

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多