我正在尝试在Richardson-Lucy反卷积算法中实现停止标准described in this paper。我的测试图像有2.2 Mpx。我需要计算:
estimator = numpy.dot(P_e_ortho, im_deconv.flatten())
其中
im_deconv = [[]] # Image L channel as a 2D array
m = 2.2E6 # im_deconv.size
P_e_ortho = scipy.sparse.identity(m, dtype='int8') - \
1/m * np.ones((m, m), dtype='int8')
基本上,P_e_ortho
在对角线上有1 - 1/m
,在其他地方有- 1/m
。
现在这段代码返回一个内存错误(需要4.8×10 12个单元格)。我怎么能避免在计算中处理整个矩阵呢?
scipy.sparse.identity(m, dtype='int8') * (1 - 1/m)
可以正常设置对角线,但如何更改非对角线元素?
答案 0 :(得分:0)
找到解决方案:
3.5