Форум сайта python.su
0
Имеется список URL'ов картинок форматов jpg, jpeg, png (около 100к шт.). Необходимо без загрузки узнать: не меньше ли это изображение чем 640х480
Отредактировано dmitriigoog (Фев. 15, 2018 17:35:25)
Офлайн
35
import urllib >>> url=urllib.urlopen('http://python.su') >>> url.headers.keys() ['content-length', 'vary', 'server', 'connection', 'date', 'content-type'] >>> url.headers['content-length'] '96309'
Отредактировано scidam (Фев. 16, 2018 11:26:39)
Офлайн
186
> Далее, нужно загрузить, скажем, 100 изображений различных
ТС ничего загружать не хочет. Он думает что разрешение передаётся по интернет-протоколу.
> Найти минимальный размер в байтах того из этих изображений, которое больше 640x480…Многое, однако, в этом случае, зависит от 100 тестовых изображений
Вот ты сейчас какую-то ерунду написал.
Офлайн
35
RodegastВполне возможно, ночь не спал… смысл в общем должен быть такой: размер изображения, в принципе, можно получить через content-length. Теперь, чтобы принимать решение о том, большее оно 640x480 или нет (будем считать, что изображение больше 480x640 (определим такой класс) если оба w и h его больше соответствующих значений), нужно попытаться построить решающее правило, для этого я предложил сформировать выборку из малого числа (100) изображений, и оценивать принадлежность классу “больше 640x480” на основе размера изображения. Это конечно будет давать возможно большую ошибку. Но если изображения более менее похожи по соотношению сторон, цветовому набору, сжаты одинаково, может и сработает, т.е. результат будет лучше случайного гадания.
Вот ты сейчас какую-то ерунду написал.
Офлайн
186
> будем считать, что изображение больше 480x640 (определим такой класс) если оба w и h его больше соответствующих значений
Это не правильно. Разрешение это площадь в пикселах которую будет занимать изображения, по этому что-бы сравнить размер изображения нужно сначала вычислить количество пикселей. Например:
>>> 640 * 480 > 9000 * 90 False
Офлайн
35
Постановка задачи неопределенная:
dmitriigoog
не меньше ли это изображение чем 640х480
Офлайн
4
Вклинюсь в вашу беседу. Мне кажется, что задача сформулирована изначально неправильно. Дело в том, что размер файла формата jpeg не зависит (а уж линейно - тем более) от размера файла. Кто не верит - тривиальный пример: генерируем две картинки одного размера, одну заливаем одним цветом, вторую - случайным образом зашумляем. (В Фотошопе - в один клик) потом сравниваем результаты. Поэтому, даже применяя методы машинного обучения, вначале надо выяснить, что картинки как минимум однотипны, потом строить кластеры, потом - обучать классификатор, потом - получать результат с весьма немалой ошибкой. Я думаю, топикстартер не этого ожидал. " без загрузки узнать: не меньше ли это изображение чем 640х480" - не представляется возможным, по крайней мере с достаточно степенью надежности результата.
Отредактировано passant (Фев. 17, 2018 13:03:22)
Офлайн
568
passant
что размер файла формата jpeg не зависит (а уж линейно - тем более) от размера файла
Офлайн
4
FishHook
Может быть подумаете еще раз?
Отредактировано passant (Фев. 17, 2018 15:07:16)
Прикреплённый файлы:
A.rar (60,8 KБ)
Офлайн
0
есть довольно простое решение при условии скачивания картинки. может быть при отсутствии альтернативных решений можно сделать так: скачать указанную картинку по урл -> проверить её разрешение -> при условии <= 640*480 - проиндексировать для дальнейшей работы -> при уловии => 640*480 пропустить -> удалить картинку из загрузок. Как считаете, заработает?
Офлайн