我正在尝试对图像进行一些修改(“some\u image.jpeg”)。
因此,我将其加载到变量:image\u org和image\u mod中。
在image\u mod i want do modifications中,image\u org i want to keep unchanged for later comparizions中,image\u mod i want do modifications,image\u org i want to keep unchanged for later comparizions中,我希望在。
在对image\u mod进行一些更改后(基本上在上面画一些线)。
我正在创建一个新图像,这是修改后的图像和原始图像之间的差异:image\u diff=cv2。减去(image\u mod,image\u org)。
我使用:diff\u num=cv2将差值计算为一个数字。sumElems(image\u diff)[0]并将所有3个图像保存到。png文件。
我希望获得:
-与原始文件相同的图像(image\u org)
-具有附加行的图像(image\u mod)
-仅包含添加到image\u mod(image\u diff)的行的图像
-diff\u num是一个数字,相当大的数字
然而,我得到的是:
-image\u org已更改,看起来与image\u mod完全相同
-diff\u num等于0.0
我怀疑我在代码的前几行中犯了错误,但是我无法理解image\u org是如何被我的代码修改的。请帮助我修复它,这样我就可以得到我所需要的东西。
import cv2
image_org = cv2.imread('some_image.jpeg',0)
image_mod = image_org
for i in range(10):
cv2.line(image_mod,(100+i*5,0),(0+i*5,150),(255),1,16)
image_diff = cv2.subtract(image_mod, image_org)
diff_num = cv2.sumElems(image_diff)[0]
cv2.imwrite('test_org.png',image_org)
cv2.imwrite('test_mod.png',image_mod)
cv2.imwrite('test_dif.png',image_diff)
print(diff_num)