簡體   English   中英

圖像切減和加法

[英]Imagechops subtraction and addition

我有兩個圖像。 我先從第二個減去,然后再將差異加到第一個並保存圖像。 但是新圖像與原始圖像不同。 為什么會這樣呢? 這是代碼:

import Image
from PIL import ImageChops

im1 = Image.open("scimg1.png") 
im2 = Image.open("scimg2.png")

diff = ImageChops.subtract(im2, im1)
newim2 = ImageChops.add(im1, diff)
newim2.save("newim2.png")
diff.save("diffimg.png")

從當我查看來自im1,im2和diff的像素值的數組時,可以看到,即使im1的像素值大於im2的像素值,diff值也永遠不會低於0。

因此,例如,如果im1在某一點的像素值為(255,255,255),而對於im2,則為(235,235,235),即使255-235 = -20,diff值也將是(0,0,0)。 然后,當您嘗試將diff值0添加到im1時,其像素值仍為(255,255,255),而不是(235,235,235)。

同樣,diff數組似乎與im1的數組大小相對應,因此,如果im1小於im2,則diff圖像也將更小。 但是我不確定根據您使用的圖像是否對您一樣,我建議您導入numpy並查看自己的圖片和diff的數組。

那是因為您要從im2中減去圖像,然后將其添加回im1中 如果您修復該代碼應正常工作。

這是固定代碼:

import Image
from PIL import ImageChops

im1 = Image.open("scimg1.png") 
im2 = Image.open("scimg2.png")

diff = ImageChops.subtract(im2, im1)
newim2 = ImageChops.add(im2, diff)
newim2.save("newim2.png")
diff.save("diffimg.png")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM