【问题标题】:Creating array of unchangable image segments创建不可更改的图像片段数组
【发布时间】:2020-03-15 10:47:48
【问题描述】:

我的目标是创建一个二维数组,其中每个位置i,j 都有图像片段的傅里叶变换,image[i][j] 作为左上角的像素。我认为这可以很直接地计算出来。假设我们的图像大小为m,n,段(或者更确切地说是正方形)的大小为s

A = numpy.empty(shape=(m,n),dtype='object')
for i in range(m):
   for j in range(n):
      if (m-i >= s) and (n-j >= s):
         A[i][j] = numpy.fft.fftn(image[i:i+s,j:j+s]

然后,在一个循环中,我希望将某个阈值下的系数设置为零:

x = A[i][j]
x[np.absolute(x) <= z] = 0

现在的问题是它也改变了A,但是使用深拷贝会减慢大循环。基本上A 不应该改变,但我需要它的元素的快速副本。如何解决问题?

【问题讨论】:

    标签: python arrays image image-processing copy


    【解决方案1】:

    您可以使用numpy.copy 创建数组A 的副本,例如:

    x = np.copy(A)
    

    这将创建一个数组副本,您可以在该副本上更改x 中的系数,而无需更改A

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 2018-02-04
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多