【发布时间】:2015-03-29 09:21:25
【问题描述】:
我有一个皮肤检测代码,可以很好地从 HSV 图像的背景中分离出皮肤像素。
现在,我想将右侧的图像转换为黑白图像。 我的逻辑是检查所有非黑色像素并将其饱和度值更改为 0,强度值更改为 255。
所以本质上,像素将是 [0-255,0,255]。我正在使用 python 和 opencv。
h,b = skin.shape[:2]
for i in xrange(h):
for j in xrange(b):
# check if it is a non-black pixel
if skin[i][j][2]>0:
# set non-black pixel intensity to full
skin[i][j][2]=255
# set saturation zero
skin[i][j][1]=0
但它会产生这个输出 -
如何将那些粉红色像素转换为白色??
【问题讨论】:
-
你引用了
skin[i][j][2](值)两次——你永远不会改变色相或饱和度。您的代码可能会更清晰,例如HUE, SAT, VAL = range(3),那就更难犯那样的错误了。 -
我不知道opencv,但你不应该用
skin[i][j][1]=0将饱和度设置为0吗? -
@PM2Ring 是的,谢谢。我编辑了那一点。我在发布之前已经更改了一些代码,但忘记重新检查了。
-
查看发布的答案?