Я пытался заставить это работать, и у меня действительно проблемы, поэтому очень благодарен за помощь.Удалить цвет фона из изображения с помощью Python/PIL
Используя приведенный ниже код, я хочу изменить функции с указанными значениями RGB на белый, а также на все другие функции изображения черного (то есть в основном извлекать функции из изображения). К сожалению, хотя я могу сделать функции Я хочу, чтобы «извлечь» хорошо, когда я пытаюсь удалить цвет фона (я пытался использовать
mask2 = ((red != r1) & (green != g1) & (blue != b1))
data[:,:,:4][mask2] = [rb, gb, bb, ab]
но кажется, что выбрать любые пиксели, кроме тех, с красным == Г1 или зеленый == g1 и т. д., оставляя мне фоновое изображение, которое довольно «шумно».) Кто-нибудь знает способ буквально извлечь эти пиксели с указанными значениями RGB или лучший способ перекрасить фоновые пиксели?
Благодаря
import numpy as np
from PIL import Image
im = Image.open('/home/me/nh09sw.tif')
im = im.convert('RGBA')
data = np.array(im)
r1, g1, b1 = 246, 213, 139 # Original value
rw, gw, bw, aw = 255, 255, 255, 255 # Value that we want to replace features with
rb, gb, bb, ab = 0, 0, 0, 255 #value we want to use as background colour
red, green, blue, alpha = data[:,:,0], data[:,:,1], data[:,:,2], data[:,:,3]
mask = ((red == r1) & (green == g1) & (blue == b1))
data[:,:,:4][mask] = [rw, gw, bw, aw]
im = Image.fromarray(data)
im.save('/home/me/nh09sw_recol.tif')