Из изображения лица я получаю скин-маску изображения с cv2, как я нахожу здесь
Результатом является массив массивов (изображение), состоящий из пикселей (RGB)
Проблема в том, что на итоговой картинке очень много черных пикселей, не принадлежащих коже.
I want to get 2d array with non-black pixels as [[218,195,182]. ... [229,0, 133]] -with only the pixels of facial skin color
I try to eject the black pixels by finding all the pixels whose all RGB is equal to 0 like [0,0,0] only:
Note that I do not want to extract zeros from pixels like: [255,0,125] [0,0,255] and so on.
def eject_black_color(skin):
list=[]
#loop over pixels of skin-image
for i in range(skin.shape[0]):
for j in range(skin.shape[1]):
if(not (skin[i][j][0]==0 and skin[i][j][1]==0 and skin[i][j][2]==0)):
#add only non-black pixels to list
list.append(skin[i][j])
return list
Как сделать написать его более эффективным и быстрым способом?
Спасибо