Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Быстрый поиск дублей в большом количестве картинок
Новая тема
Ответить
цитата
24/04/13 в 14:55
gibbedhead
День добрый, форумчане.
Поделитесь, может быть кто-то уже решал похожую задачу.
Мне нужно при грабе, дабы не забирать лишних дублей сравнивать каждую новую картинку с тем что уже есть. Простое сравнение по md5 уже есть, но конечно работает не всегда. Я нашел консольные проги под linux, но как их пристроить в связку с php, пока не придумал. Хорошо бы выделять какое-то свойство у картинок, которое будет храниться отдельно и новая картинка будет сверяться с ним, чтобы не перебирать каждый раз проверку с сотней другой тысяч картинок.
Заранее спасибо.
цитата
24/04/13 в 16:09
ibiz
ImageMagick в помощь
цитата
24/04/13 в 16:11
Sterx
Код:
$hash = md5(join('.',getimagesize($path)).'.'.filesize($path));
или считывать кусок файла, возвращая md5 его
цитата
24/04/13 в 18:04
gibbedhead
MD5 уже в работе.
А вот вариант с imagemagic хорош, но получается мне надо в итоге сравнивать каждую новую картинку с 200к-300к уже существующих. Вот этот момент может можно убыстрить. Например хранить куски ужатых картинок, для проверки, а не всех их.
Смысл именно в том что картинок очень много.
цитата
24/04/13 в 19:26
FXIX
ну пиши в базу $hash да сравнивай. секундное дело
цитата
24/04/13 в 19:50
ibiz
FXIX писал:
ну пиши в базу $hash да сравнивай. секундное дело
ну а если одна пикча 94% jpeg, а вторая 95% jpeg, визуальной разницы между ними нет, а вот $hash будет отличаться, также две идентичные картинки, одна из которых обрезанная на 1px, тоже не будут равны $hash, как быть в этом случае?
но действительно для 300к ImageMagick compare утилиты это создает нагрузку
цитата
24/04/13 в 20:15
FXIX
ibiz писал:
ну а если одна пикча 94% jpeg, а вторая 95% jpeg, визуальной разницы между ними нет, а вот $hash будет отличаться, также две идентичные картинки, одна из которых обрезанная на 1px, тоже не будут равны $hash, как быть в этом случае?
но действительно для 300к ImageMagick compare утилиты это создает нагрузку
ну так смотря для чего. сначала отсеять основной вал, а потом написать быстро быстрый интерфейс где можно мышой...мотать мотать мотать и кликом удалять удалять нахуй.
а "94% jpeg, а вторая 95% jpeg" тебе и гугл не отличит. попробуй поиск гугл картинки по файлу. хуйню же ищет откровенную.
цитата
24/04/13 в 20:23
ibiz
FXIX писал:
ну так смотря для чего. сначала отсеять основной вал, а потом написать быстро быстрый интерфейс где можно мышой...мотать мотать мотать и кликом удалять удалять нахуй.
а "94% jpeg, а вторая 95% jpeg" тебе и гугл не отличит. попробуй поиск гугл картинки по файлу. хуйню же ищет откровенную.
а вот ImageMagick отличает, даже с водными знаками режет, главное фильтры точности и шумов, или как там, настроить
цитата
24/04/13 в 21:05
FXIX
кстати можно гугл то заюзать
.
где там у нас продвинутые сортировки есть. пикаса? флирк? инстаграмм? яндекс-картинки? в пикасе точно что-то такое есть. типа "показать одинаковые". залить нахуй туда, непаблик-альбом естественно. и отсортировать.
цитата
25/04/13 в 05:10
gibbedhead
Мне желательно проверку автоматизировать. Поиск прогами с GUI я уже наладил.
Вот что подкинули на зарубежном форуме
http://www.pureftpd.org/project/libpuzzle/php
Сижу курю, может кому тоже пригодится.
Так же просто для инфы, может кому пригодится
http://www.imgseek.net/isk-daemon
цитата
26/04/13 в 17:30
iRoot
Алгоритмов подобных достаточно, вот один из самых простых
http://www.hackerfactor.com/blog/?/archives/432-Looks-Like-It.html
Я реализовывал поиск похожих картинок на нем + Histogram Distance.
После того как вычилишь все хэши для коллекции картинок потом найти там похожие довольно просто, степень похожести можно регулировать используя различную разрядность хэшей. Например 4-ех байтный хеш найдет издалека похожие, а 16-байтный очень похожие. А при вычислении расстояния гистограмм, получишь представление о том на сколько цветовые гаммы изображений похожи.
Новая тема
Ответить
Эта страница в полной версии