Python Pil изменить оттенки серого Tif на RGB
У меня есть файл tif в оттенках серого. Мне нужно преобразовать его в RGB/ читать с него таким образом, чтобы я мог работать с ним.
img = Image.open(GIF_FILENAME)
rgbimg = img.convert('RGB')
for i in range(5):
print rgbimg.getpixel((i, 0))
Новообращенный.("RGB") автоматически сделает все (255,255,255), даже если изображение действительно темное, в основном черное.
Если я просто читаю числа в оттенках серого, я получаю числа примерно от 1400 до 1900.
Мне также нужно сохранить копию изображения в формате RGB Jpeg.
Изображение в вопросе: [здесь]: http://imgur.com/kEwfFs3
Как пойду ли я на это?
1 ответ:
Как насчет:
img = Image.open(GIF_FILENAME) rgbimg = Image.new("RGBA", img.size) rgbimg.paste(img) rgbimg.save('foo.jpg')[EDIT]
Создал тест:
from PIL import Image from collections import defaultdict import pprint img = Image.open("kEwfFs3.png") rgbimg = Image.new("RGBA", img.size) rgbimg.paste(img) found_colors = defaultdict(int) for x in range(0, rgbimg.size[0]): for y in range(0, rgbimg.size[1]): pix_val = rgbimg.getpixel((x, y)) found_colors[pix_val] += 1 pprint.pprint(dict(found_colors)) rgbimg.save('kEwfFs3.jpg')И что выводит:
{(0, 0, 0, 255): 747802, (1, 1, 1, 255): 397, (2, 2, 2, 255): 299, (3, 3, 3, 255): 255, (4, 4, 4, 255): 221, (5, 5, 5, 255): 200, (6, 6, 6, 255): 187, (7, 7, 7, 255): 138, (8, 8, 8, 255): 160, (9, 9, 9, 255): 152, (10, 10, 10, 255): 122, (11, 11, 11, 255): 116, (12, 12, 12, 255): 144, (13, 13, 13, 255): 117, (14, 14, 14, 255): 117, (15, 15, 15, 255): 102, (16, 16, 16, 255): 119, (17, 17, 17, 255): 299641, (18, 18, 18, 255): 273, (19, 19, 19, 255): 233, .................... etc ....... .................... etc ....... (249, 249, 249, 255): 616, (250, 250, 250, 255): 656, (251, 251, 251, 255): 862, (252, 252, 252, 255): 1109, (253, 253, 253, 255): 1648, (254, 254, 254, 255): 2964175}Чего и следовало ожидать. Отличается ли ваш выход?
Comments