技巧一, 利用颜色数值的和进行黑白色的操作
npImg = np.array(img)
yansemask = npImg[:,:,0] + npImg[:,:,1] + npImg[:,:,2] # 将3个通道的颜色值加起来, ==0 的是黑色, 等于 255 * 3 =765 的是白色
npImg[yansemask == 0] = 255 # 黑色的全变成白色
npImg[yansemask != 0] = 0 # 不是黑色的改成黑色.
技巧二, 利用颜色数值带位置信息的和的操作
npImg = np.array(img)
yansemask = npImg[:,:,0] * 1000000 + npImg[:,:,1] * 1000 + npImg[:,:,2] # 将3个通道的颜色值加起来, 红色的代码是 (255,0,0) 那么它的数值为2550000
#RGB适用
npImg[yansemask == 255000000] = 255 # 红色的全变成白色 RGB适用,RGBA则应改成下面这种
#RGBA 适用
for i in range(3):
npImg[:

本文介绍使用NumPy进行图像处理的三个实用技巧:通过颜色数值和进行黑白转换;利用颜色值带位置信息实现特定颜色替换;以及利用位运算进行颜色过滤。此外,还提供了一个用NumPy实现的透明图叠加到底图上的方法,该方法可以替代Image.alpha_composite函数,减少图像格式转换带来的性能损耗。
最低0.47元/天 解锁文章
4804

被折叠的 条评论
为什么被折叠?



