Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.07.2009, 22:58
Новичок

Отправить личное сообщение для gerwazy Посмотреть профиль Найти все сообщения от gerwazy
 
Регистрация: 27.07.2009
Сообщений: 4

Сравнить две картинки GIF
Пытаюсь написать алгоритм для сравнивания двух картинок GIF 4х4 пикс. и нахождения степени похожести в процентах.
Я программирую только в PHP, подскажите пожалуйста в каком языке программируються такие вещи и с чего начать. Программу мне надо сделать мега быструю.
  #2  
Старый 27.07.2009, 23:13
гость

 
Сообщений: n/a

Цитата:
Пытаюсь написать алгоритм для сравнивания двух картинок GIF 4х4 пикс. и нахождения степени похожести в процентах.
Степень похожести для вас - это что? Процент пикселей имеющих одинаковый цвет?

Цитата:
Я программирую только в PHP, подскажите пожалуйста в каком языке программируються такие вещи и с чего начать.
Да для любого распространенного языка сейчас есть куча библиотек для работы с графическими файлами.
Для PHP вроде бы получила наибольшее распространение библиотека gd - http://www.php.net/gd

Цитата:
Программу мне надо сделать мега быструю.
Попробуй сначала написать прототип на чем знаешь (т.е. php + gd). И переходи на более быстрые языки (типа c++), только если скорость работы php не будет устраивать.
  #3  
Старый 27.07.2009, 23:50
Новичок

Отправить личное сообщение для gerwazy Посмотреть профиль Найти все сообщения от gerwazy
 
Регистрация: 27.07.2009
Сообщений: 4

Сообщение от гость
Степень похожести для вас - это что? Процент пикселей имеющих одинаковый цвет?
Цвета только два: черный и белый, сравнить по ходу дела надо цвет и расположение.
У меня появилась идея сравнить две матрицы, а лучше два стринга.
допустим есть две картинки 3х3. Одну представим как 111000000 вторую: например 011100000 (1: черный, 0: белый пиксель).
Суммируем поочередно каждое число попорядку, выходит 122000000. Получается что двойки и нули ето общие елементы, их 8, т.е схожесть 8/9 (88.88%)

Сообщение от гость
Да для любого распространенного языка сейчас есть куча библиотек для работы с графическими файлами.
Для PHP вроде бы получила наибольшее распространение библиотека gd - http://www.php.net/gd
Да Ты прав: библиотек куча. Есть даже функции для сравнивания графики в Imagemagick. Но проблема такая что библиотеки ети очень сложены (сравнивают цвета, разные форматы графики и тд.) Я хотел бы написать алгоритм узкой специализации, который мог бы сравнить одну черно-белую картинку GIF с 1000000 других картинок в коротком интервале времени.

Не умею толко сконвертировать GIF na еденицы и нули, или может знаете другой способ. Буду очень благодарен за помощь
  #4  
Старый 28.07.2009, 00:16
гость

 
Сообщений: n/a

Ну, у тебя только два выбора - либо учись пользоваться библиотеками типа gd, либо читай спецификации и сам пиши парсер для формата .gif.

Как я уже сказал - попробуй сначала написать прототип с помощью php и gd (поищи примеры в сети как пользоваться gd). И если и только если скорость работы не будет устраивать, то только тогда имеет смысл сделать что-то умнее, типа собственного парсера .gif'ов. Миллион маленьких картинок это еще не настолько и много, чтобы оправдывать написание собственного парсера.
  #5  
Старый 28.07.2009, 00:24
гость

 
Сообщений: n/a

Могу предложить еще воспользовать программкой gif2ppm из пакета netpbm - она преобразует твою картинку в текстовый файл очень простого формата, распарсить который не составляет никакого труда. Запусти её на всех своих картинках, и получишь файлы со своим нулями и единицами в текстовом виде, не написав ни строчки кода.
  #6  
Старый 28.07.2009, 00:26
Новичок

Отправить личное сообщение для gerwazy Посмотреть профиль Найти все сообщения от gerwazy
 
Регистрация: 27.07.2009
Сообщений: 4

Сообщение от гость
Могу предложить еще воспользовать программкой gif2ppm из пакета netpbm - она преобразует твою картинку в текстовый файл очень простого формата, распарсить который не составляет никакого труда. Запусти её на всех своих картинках, и получишь файлы со своим нулями и единицами в текстовом виде, не написав ни строчки кода.
Спасибо огромное. Попробую gif2ppm. Посмотрим что выйдет
  #7  
Старый 28.07.2009, 00:28
гость

 
Сообщений: n/a

Сообщение от гость Посмотреть сообщение
Могу предложить еще воспользовать программкой gif2ppm из пакета netpbm
Точнее, это giftopnm. Ну или convert из imagemagick.

У меня они работают довольно шустро, дают 500 картинок размер 4x4 в секунду.
  #8  
Старый 28.07.2009, 00:40
Новичок

Отправить личное сообщение для gerwazy Посмотреть профиль Найти все сообщения от gerwazy
 
Регистрация: 27.07.2009
Сообщений: 4

Сообщение от гость
Точнее, это giftopnm
Программа мне понравилась, можно сказать то что мне нужно, есть даже версия дла bash. Только вот лицензия стоит 5000$... :/
  #9  
Старый 28.07.2009, 01:10
гость

 
Сообщений: n/a

Какая лицензия? Программ опен-сорсная. А патент на .gif давно просрочен.
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Картинки для анимации гость Реализация, исходники, языки 0 29.11.2008 21:45
Сравнить две функции гость Вычислительная геометрия 4 13.11.2008 02:09
Бесконечный скроллинг картинки гость Математические алгоритмы (другое) 6 14.06.2008 16:55