![]() |
|
|
![]()
|
|
| gerwazy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 27.7.2009 Репутация: нет Всего: нет |
Пытаюсь написать алгоритм для сравнивания двух картинок GIF 50х50 пикс. и нахождения степени похожести в процентах.
Я программирую только в PHP, подскажите пожалуйста в каком языке программируються такие вещи и с чего начать? Есть куча библиотек для этого. Есть даже функции для сравнивания графики в Imagemagick. Но проблема такая что библиотеки ети очень сложены (сравнивают цвета, разные форматы графики и тд.) Я хотел бы написать алгоритм узкой специализации, который мог бы сравнить одну черно-белую картинку GIF с 1000000 других картинок в коротком интервале времени. Цвета только два: черный и белый, сравнить по ходу дела надо цвет и расположение. У меня появилась идея сравнить две матрицы, а лучше два стринга. допустим есть две картинки 3х3. Одну представим как 111000000 вторую: например 011100000 (1: черный, 0: белый пиксель). Суммируем поочередно каждое число попорядку, выходит 122000000. Получается что двойки и нули ето общие елементы, их 8, т.е схожесть 8/9 (88.88%) Не умею толко сконвертировать GIF na еденицы и нули, или может знаете другой способ. Буду очень благодарен за помощь Добавлено через 4 минуты и 19 секунд Ну и проблема с размером такого стринга. при картинке 50х50 ето 2500 цифр, т.е. 2500 байт. А скомпрессированный GIF 50х50 занимает около 600 бит. Есть у кого идея как сравнивать скомпрессированные картинки? |
|||
|
||||
| Pavia |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Да практически в любом. Достаточно сделать xor одинаковые элементы 0 0 и 1 1 додут 0 а разные 0 1 и 1 0 дадут 1 остается подсчитать число 1 битов и поделить на общее число бит. Биты проще считать через табличную замену заводим массив длинной 256 где в качестве индекса берем байт а в качестве значения будет число 1 битов. Для подсчета битов используем.
Разжать. |
||||
|
|||||
| gerwazy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 27.7.2009 Репутация: нет Всего: нет |
Спасибо огромнейшее за ответ.
только тяжело понять как записать массив и как написать алгоритм хоr:
дай пожалуйста пример какой нибудь я нашел хорошую библиотеку giftopnm и она преобразовывает gif в строки едениц и нулей Это сообщение отредактировал(а) gerwazy - 28.7.2009, 00:13 |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 4 Всего: 27 |
Просто интересно: а вот такие картинки разные или одинаковые? Просто ваш алгоритм покажет схожесть процентов на 90. Они считаются одинаковыми?
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |