这是我的python代码,我想找到两个图像之间的差异。
import cv
import numpy as np
img1=cv.imread('/storage/emulated/0/a.jpg',0)
print(img1[0:1])
img2=img1
img2[0:1994]=1
print(img2[0:1])
rows,cols=img1[0:1].shape
print(rows)
print(cols)
rows,cols=img2[0:1].shape
print(rows)
print(cols)
print(np.subtract(img1[0:1,0:1], img2[0:1,0:1]))
我正在减去这些numpy数组,但总是得零。请帮忙解决这个问题。
答案 0 :(得分:1)
问题在于您复制图像的方式。
使用赋值运算符(=)分配对象时,对一个对象所做的更改也会反映在另一个对象中。因此,当img2 = img1
img2
所做的更改img1
时,您的这种情况也会反映在copy()
中。因此,在减法时,你总是零。
快速解决方法是使用img2
方法。这会一起创建一个新对象img2
。因此,img1
中所做的更改不会反映在img2 = img1.copy()
中,反之亦然。
print(np.subtract(img1[0:1,0:1], img2[0:1,0:1]))
现在打印[[233]]
会产生shapes[].mesh.indices
请同时查看THIS BLOG POST。