簡體   English   中英

Pillow和Numpy的圖像演繹

[英]Image deduction with Pillow and Numpy

我有兩張圖片: 在此輸入圖像描述

在此輸入圖像描述

我想導出一個只有紅色“Hello”的圖像:

在此輸入圖像描述

所以我正在運行一個簡單的演繹python腳本:

from PIL import Image
import numpy as np

root = '/root/'
im1 = np.asarray(Image.open(root+'1.jpg'))
im2 = np.asarray(Image.open(root+'2.jpg'))

deducted_image = np.subtract(im1, im2)

im = Image.fromarray(np.uint8(deducted_image))
im.save(root+"deduction.jpg")

但這回歸:

在此輸入圖像描述

而不是上述。 我究竟做錯了什么? 我還需要numpy還是只使用Pillow Library?


編輯:

它也適用於這樣的圖像:

在此輸入圖像描述

我的代碼返回:

在此輸入圖像描述

很困惑為什么它在邊緣像素化!

將第二張圖像中不需要的像素設置為0可能更容易?

im = im2.copy()
im[im1 == im2] = 0
im = Image.fromarray(im)

似乎對我有用(顯然只是使用更大的工件,因為我使用了你上傳的JPG)

腳本的結果

也可以在沒有numpy的情況下執行此操作:

from PIL import ImageChops
from PIL import Image

root = '/root/'
im1 = Image.open(root + '1.jpg')
im2 = Image.open(root + '2.jpg')

def nonzero(a):
    return 0 if a < 10 else 255

mask = Image.eval(ImageChops.difference(im1, im2), nonzero).convert('1')

im = Image.composite(im2, Image.eval(im2, lambda x: 0), mask)

暫無
暫無

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

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