Форум сайта python.su
Люди, очень нужна помощь.
Мне нужно загрузить изображение(оттенки серого), перевести его в двумерный массив, обработать его и присвоить изображению и вывести результат. Никак не могу найти правильное решение. Плизз, может кто сталкивался с таким.
Офлайн
в PIL можно так сделать, но правда как можно присвоить изображению масив не знаю
Офлайн
насчёт PIL я знаю, но вот только мне необходимо провести обработку контуров на изображении, а PIL мне информацию о них не выдаст, поэтому нужно перевести в массив чисел
Офлайн
Можно загрузить через PIL, перегнать в raw через tostring, затянуть это в numpy.ndarray, сделать что нужно, выгнать опять в raw и занянуть снова в PIL.Image. Сохранить.
Можно сделать из PIL.Image PIL.ImageDraw и работать попиксельно.
Первый способ - лучше
Офлайн
Андрей Светлов1) думаю ударит по качетву рисунка, хотя не уверен
Можно загрузить через PIL, перегнать в raw через tostring, затянуть это в numpy.ndarray, сделать что нужно, выгнать опять в raw и занянуть снова в PIL.Image.
Офлайн
pythonwinэто уже не проблемы питона, а самого jpg(хорошо сжимает)
2) + сильно ударит по ОЗУ, т.к. tostring для рисунка (jpg) в 1,5Мб дает строку в 40Мб
Офлайн
Довольно несложно перегнать в массив файл в формате bmp, по большому счету - это и есть массив, только с заголовком. Только есть ли смысл работать с ним в чистом питоне, без си расширений - трудно сказать. Подозреваю, что поставленную задачу проще будет решать в gimp при помощи питоновского плагина.
Офлайн
Daevaornbmp из jpg файла = 1,5Мб будет примерно 10-15Мб, т.е. меньше в 3-4 раза чем возвращает tostring
это уже не проблемы питона, а самого jpg(хорошо сжимает)
Офлайн
tostring возвращает чистые байты. поэтому результат tostring должен быть даже меньше чем bmp.
очевидно вы сохраняете в bmp с включенной rle-компрессией
Офлайн
Мы говорим о форматах файлов или об обработке картинки?
Если грузишь jpeg - он все равно разворачивается в памяти в чистый raw.
О потере качества: если это тот же jpeg - качество теряется на каждом преобразовании.
Если серый tiff (а у Sunny, похоже, этот случай) - потери не будет.
P.S. Ох уж эти вебовщики, знания о картинке ограничиваются способом сделать ее в минимальном размере на диске!
Офлайн