С нами с 08.12.09
Сообщения: 57
Рейтинг: 91
|
Добавлено: 24/04/13 в 14:55 |
День добрый, форумчане.
Поделитесь, может быть кто-то уже решал похожую задачу.
Мне нужно при грабе, дабы не забирать лишних дублей сравнивать каждую новую картинку с тем что уже есть. Простое сравнение по md5 уже есть, но конечно работает не всегда. Я нашел консольные проги под linux, но как их пристроить в связку с php, пока не придумал. Хорошо бы выделять какое-то свойство у картинок, которое будет храниться отдельно и новая картинка будет сверяться с ним, чтобы не перебирать каждый раз проверку с сотней другой тысяч картинок.
Заранее спасибо.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 24/04/13 в 16:09 |
ImageMagick в помощь
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760
|
Добавлено: 24/04/13 в 16:11 |
Код: |
$hash = md5(join('.',getimagesize($path)).'.'.filesize($path));
|
или считывать кусок файла, возвращая md5 его
|
|
|
|
С нами с 08.12.09
Сообщения: 57
Рейтинг: 91
|
Добавлено: 24/04/13 в 18:04 |
MD5 уже в работе.
А вот вариант с imagemagic хорош, но получается мне надо в итоге сравнивать каждую новую картинку с 200к-300к уже существующих. Вот этот момент может можно убыстрить. Например хранить куски ужатых картинок, для проверки, а не всех их.
Смысл именно в том что картинок очень много.
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 24/04/13 в 19:26 |
ну пиши в базу $hash да сравнивай. секундное дело
|
|
пришел к победе коммунистического труда
|
0
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 24/04/13 в 19:50 |
FXIX писал: | ну пиши в базу $hash да сравнивай. секундное дело |
ну а если одна пикча 94% jpeg, а вторая 95% jpeg, визуальной разницы между ними нет, а вот $hash будет отличаться, также две идентичные картинки, одна из которых обрезанная на 1px, тоже не будут равны $hash, как быть в этом случае?
но действительно для 300к ImageMagick compare утилиты это создает нагрузку
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 24/04/13 в 20:15 |
ibiz писал: | ну а если одна пикча 94% jpeg, а вторая 95% jpeg, визуальной разницы между ними нет, а вот $hash будет отличаться, также две идентичные картинки, одна из которых обрезанная на 1px, тоже не будут равны $hash, как быть в этом случае?
но действительно для 300к ImageMagick compare утилиты это создает нагрузку |
ну так смотря для чего. сначала отсеять основной вал, а потом написать быстро быстрый интерфейс где можно мышой...мотать мотать мотать и кликом удалять удалять нахуй.
а "94% jpeg, а вторая 95% jpeg" тебе и гугл не отличит. попробуй поиск гугл картинки по файлу. хуйню же ищет откровенную.
|
|
пришел к победе коммунистического труда
|
0
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 24/04/13 в 20:23 |
FXIX писал: | ну так смотря для чего. сначала отсеять основной вал, а потом написать быстро быстрый интерфейс где можно мышой...мотать мотать мотать и кликом удалять удалять нахуй.
а "94% jpeg, а вторая 95% jpeg" тебе и гугл не отличит. попробуй поиск гугл картинки по файлу. хуйню же ищет откровенную. |
а вот ImageMagick отличает, даже с водными знаками режет, главное фильтры точности и шумов, или как там, настроить
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 24/04/13 в 21:05 |
кстати можно гугл то заюзать .
где там у нас продвинутые сортировки есть. пикаса? флирк? инстаграмм? яндекс-картинки? в пикасе точно что-то такое есть. типа "показать одинаковые". залить нахуй туда, непаблик-альбом естественно. и отсортировать.
|
|
пришел к победе коммунистического труда
|
0
|
|
|
С нами с 08.12.09
Сообщения: 57
Рейтинг: 91
|
Добавлено: 25/04/13 в 05:10 |
|
|
|
|
С нами с 03.02.09
Сообщения: 139
Рейтинг: 235
|
Добавлено: 26/04/13 в 17:30 |
Алгоритмов подобных достаточно, вот один из самых простых
http://www.hackerfactor.com/blog/?/archives/432-Looks-Like-It.html
Я реализовывал поиск похожих картинок на нем + Histogram Distance.
После того как вычилишь все хэши для коллекции картинок потом найти там похожие довольно просто, степень похожести можно регулировать используя различную разрядность хэшей. Например 4-ех байтный хеш найдет издалека похожие, а 16-байтный очень похожие. А при вычислении расстояния гистограмм, получишь представление о том на сколько цветовые гаммы изображений похожи.
|
|
|
|