使用cv2.imread加载图像时发生意外的图像修改

2024-10-03 00:20:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对图像做一些修改_图像.jpeg'). 因此,我将其加载到变量:image\u org和image\u mod。 在image\u mod我想做修改,image\u org我想保持不变,以便以后比较。 在对图片做了一些修改之后(基本上是在上面画一些线)。 我正在创建一个新的图像,它是修改后的图像和原始图像之间的差异:image\u diff=cv2.subtract(image\u mod,image\u org)。 我用diff\u num=cv2.sumElems(image\u diff)[0]将差值计算为一个数字,并将所有3个图像保存到.png文件中。 我希望获得: -与原始文件相同的图像(image\u org) -图像上有附加行(image\u mod) -仅包含添加到图像\u mod(图像\u diff)的行的图像 -diff\ u num是一个数字,相当大的数字 但我得到的是: -图像组织已更改,看起来与图像模式完全相同 -diff_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)

Tags: 文件orgtest图像imagemodpngdiff