我有一个 png 文件,我想删除所有非黑色像素(将非黑色像素转换为白色)。我怎么能在 Python 中轻松做到这一点?谢谢!
问问题
10120 次
2 回答
4
这是使用 PIL 的一种方法:
from PIL import Image
# Separate RGB arrays
im = Image.open(file(filename, 'rb'))
R, G, B = im.convert('RGB').split()
r = R.load()
g = G.load()
b = B.load()
w, h = im.size
# Convert non-black pixels to white
for i in range(w):
for j in range(h):
if(r[i, j] != 0 or g[i, j] != 0 or b[i, j] != 0):
r[i, j] = 255 # Just change R channel
# Merge just the R channel as all channels
im = Image.merge('RGB', (R, R, R))
im.save("black_and_white.png")
于 2013-08-16T22:29:32.420 回答
2
我使用自制软件在我的 Mac 上完成了此操作,但我不知道您使用的是哪个操作系统,所以我无法为您提供更具体的说明,但如果您还没有完成这些步骤,则需要采取以下一般步骤:
1)安装libjpeg(如果你要处理一个.jpeg文件,pil不附带这个)
2) 安装 pil ( http://www.pythonware.com/products/pil/或者通过 homebrew 或 macports 等,如果你使用的是 mac)
3) 如果需要,将 pil 与 python 链接
4)使用此代码:
from PIL import Image
img = Image.open("/pathToImage") # get image
pixels = img.load() # create the pixel map
for i in range(img.size[0]): # for every pixel:
for j in range(img.size[1]):
if pixels[i,j] != (0,0,0): # if not black:
pixels[i,j] = (255, 255, 255) # change to white
img.show()
如果您卡在某个地方,请随时提出评论。
于 2013-08-16T22:29:40.400 回答