# split image into channels
c_red, c_green, c_blue = cv2.split(img)
# merge with mask got on one of a previous steps
img_a = cv2.merge((c_red, c_green, c_blue, mask.astype('float32') / 255.0))
# show on screen (optional in jupiter)
%matplotlib inline
plt.imshow(img_a)
plt.show()
# save to disk
cv2.imwrite('girl_1.png', img_a*255)
# or the same using plt
plt.imsave('girl_2.png', img_a)
作为替代方案,您可以使用类似这样的神经网络:CRFRNN。
结果是这样的:
下面的代码将帮助您开始。您可能需要使用程序顶部的参数来微调提取:
输出:
如果希望不使用红色填充背景,但使其透明,可以向解决方案中添加以下行:
如果你想,你可以调整一些png压缩参数,使文件更小。
图片在下面的白色背景上。或者是黑色的-http://imgur.com/a/4NwmH
相关问题 更多 >
编程相关推荐