使用PIL或Scipy将Python图像从RGB转换为单个通道

2024-06-08 12:17:43 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有已知的解决方案可以使用PIL(或Scipy)将图像从具有3个通道(RGB)转换为仅具有一个通道

我尝试将图像转换为Grayscale,并按照下面的代码保存为png,图像仍然有3个颜色通道。

from glob import glob
import os
import os.path
from PIL import Image

SIZE = 32, 32

# set directory
# os.chdir('..data/unprocessed_cats')

# filter all jpg and png images
IMAGE_FILES = glob('../data/validation/cats/*.jpg')

IMAGE_COUNTER = 1
print IMAGE_FILES
# iterate over files
for image_file in IMAGE_FILES:

    # open file and resize
    try:
        im = Image.open(image_file)
    except:
        pass
    im = im.resize(SIZE, Image.ANTIALIAS)

    # save locally
    output_filename = "%s.png" % IMAGE_COUNTER
    # Grayscale
    im.convert('LA').save(os.path.join('../data/validation', 'cats_processed', output_filename), "PNG")


    # incriment image counter
    IMAGE_COUNTER = IMAGE_COUNTER + 1

Tags: 图像imageimportdatapilpngoscounter