【发布时间】:2020-11-22 17:15:04
【问题描述】:
从面部图像中,我得到了一个带有 cv2 的皮肤蒙版,因为我找到了here
结果是一个由像素(RGB)组成的数组(图像)
问题是结果图片中有太多不属于皮肤的黑色像素。
我想获得非黑色像素为 [[218,195,182] 的二维数组。 ... [229,0, 133]] - 只有面部肤色的像素
我尝试通过查找所有 RGB 等于 0 的所有像素仅像 [0,0,0] 来弹出黑色像素:
请注意,我不想从像素中提取零,例如:[255,0,125] [0,0,255] 等等。
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
如何写更高效快捷?
谢谢
【问题讨论】:
标签: python arrays mask cv2 skin