我有一个png文件,我想删除所有非黑色像素(将非黑色像素转换为白色)。 我怎么能在Python中轻松做到这一点?谢谢!
答案 0 :(得分:2)
以下是使用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")
答案 1 :(得分:2)
我使用自制啤酒在我的Mac上做了这个,我不知道你使用哪种操作系统,所以我不能给你更具体的说明,但如果你没有这些,你需要采取的一般步骤已:
1)安装libjpeg(如果你要处理一个.jpeg文件,pil不会附带这个)
2)如果您使用的是mac,请安装pil(http://www.pythonware.com/products/pil/或通过自制软件或macports等)
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()
如果你卡在某个地方,请随意发表评论。