Я пытаюсь сделать фон изображения прозрачным.Я разделил все части, которые я хочу, чтобы быть прозрачным в черном.Но python выдает мне сообщение об ошибке только при приеме RBG.Я получаю сообщение об ошибке: «невозможно скопировать последовательность размером 4 на ось массива с измерением 3». Как мне заставить python распознавать альфа-канал и разрешать мне манипулировать им?
import matplotlib.pyplot as plt
import os.path
import numpy as np
import PIL
def mask(row, column) :
for row in range(0, 383) :
for column in range(0, 86) :
img[row][column] = [0, 0, 0]
for row in range(230, 383) :
for column in range(0, 286) :
img[row][column] = [0, 0, 0]
for row in range(0, 50) :
for column in range(0, 286) :
img[row][column] = [0, 0, 0]
for row in range(0, 383) :
for column in range(199, 286) :
img[row][column] = [0, 0, 0]
directory = os.path.dirname(os.path.abspath(__file__))
filename = os.path.join(directory, 'PicOfNick.jpg')
img = plt.imread(filename)
fig, ax = plt.subplots(1, 1)
mask(283, 287)
np_img = np.array(img)
width = len(img[0])
height = len(img)
for h in range(48, 230) :
for w in range(84, 200) :
if np_img[h][w][0] in range(50, 90) :
np_img[h][w] = (0, 0, 0)
if sum(np_img[h][w]) == 0 :
np_img[h][w] = (0, 0, 0)
ax.imshow(np_img, interpolation='none')
fig.show()