【发布时间】:2012-12-14 04:15:47
【问题描述】:
喂! 我有两个图像(相同尺寸)作为 numpy 数组 imgA - imgB 我想迭代每一行和每一列并得到类似的东西:
for i in range(0, h-1):
for j in range(0, w-1):
final[i][j]= imgA[i,j] - imgB[i-k[i],j]
其中 h 和 w 是图像的高度和宽度,k 是尺寸为 [h*w] 的数组。
我看过这个话题: Iterating over a numpy array 但它不适用于图像,我收到错误:解包的值太多 有没有办法用 numpy 和 python 2.7 做到这一点?
谢谢
编辑 我试图更好地解释自己。 我在 LAB 颜色空间中有 2 张图像。 这些图像是 (288,384,3)。 现在我想做 deltaE 所以我可以这样做(吐出 2 个数组):
imgLabL=np.dsplit(imgL,3)
imgLabR=np.dsplit(imgR,3)
imgLl=imgLabL[0]
imgLa=imgLabL[1]
imgLb=imgLabL[2]
imgRl=imgLabR[0]
imgRa=imgLabR[1]
imgRb=imgLabR[2]
delta=np.sqrt(((imgLl-imgRl)**2) + ((imgLa - imgRa)**2) + ((imgLb - imgRb)**2) )
到目前为止一切都很好。 但现在我有了这个大小为 k 的数组(288,384)。 所以现在我需要一个新的增量,但 x 轴不同,就像 imgRl(0,0) 中的像素我想在 imgLl(0+k,0) 中添加像素
你有更多我的问题吗?
【问题讨论】:
-
你不是说 imgA[i][j] - imgB[i-k[i]][j] 吗??
-
是的,对不起,我写错了,但我是认真的。我的图像是 384x288,但它进入无限循环,我也不能写 final[i][j],但只是 final,因为我得到:valueError:输出操作数需要缩减,但未启用缩减。
-
imgA[i][j] 里面有什么?它是一个元组吗?如果是这样,那可能是你的问题。赋值需要一个值。
-
imgA 是一个 numpy 数组,imgA.shape 是 288,384,1。
标签: numpy python-2.7