![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
алгоритм сравнения двух изображений ...
vic_774N © (2005-04-26 20:23:00)CRC посчитать у обоих файлов - это понятно. Но вот быстровыбрать из массива изображения точки которые отличаются (например размер изображения 1024х768) пока не удается. На algoritms.ru подходящего ничего не нашел. delphi.vitpc.com от меня почему то недоступен. :(
WondeRu (2005-05-05 08:44:00) [1]Soft © (05.05.05 0:19) [14]
Самый простой вариант(при высокой производительности процессоров) архивировать все в mpeg4 и востанавливать на стороне клиента.
Исходники mpeg4 на с++ найти совсем не сложно.
лучше для этого использовать DirectShow... на моей памяти такой вариант работал на компьютере ITX-формфактора с процом VIA 300MHz.
Soft (2005-05-05 00:19:00) [2]Самый простой вариант(при высокой производительности процессоров) архивировать все в mpeg4 и востанавливать на стороне клиента.
Исходники mpeg4 на с++ найти совсем не сложно.
12345 (2005-05-04 20:01:00) [3]1. Вычесть одно изображение из другого.
Если разность больше некоторого порога то результирующий пиксель 0, иначе 1.
2. Выполнить поиск связанных компонетн.
3. Удалить маленькие компоненты (шум).
4. Выпольнить операцию замыкания чтобы сгладить края.
5. Найти ограничивающие прямоугольники. Они и будут искомыми областями.
pavia (2005-04-30 21:55:00) [4]Есть идея.Есть такая вещь как фрактал. На основе фракталов разработан одноименный метод сжатия. Сжимая картинку мы какраз получим выделение отличных блоков и уменьшение размера. Правдо насчет скорости алгоритма ничего не могу сказать.
А ты записывай не 25 кадров в секунду а 10 или еще меньше.
vic_774N (2005-04-30 20:38:00) [5]И ещё примечание. Если организовывать видеочат - озображение должно быть совсем небольшим. тогда его можно совсем не проверять, а отсылать как есть.
vic_774N (2005-04-30 20:09:00) [6]вообще то стоит задача мониторить по сети комнаты (если сделать слишком маленькое изображение - ничего не разберешь, большое - сеть просто не вынесет такого издевательства). Появилась мысль делать не расчет CRC (информация то в памяти), а сравнивать или линии или блоки и соответственно передавать те которые изменились. Плюс ко всему передавать то не BMP а JPG - это тоже существенно уменьшит нагрузку на сеть. Оптимальное изображение (IMXO) должно быть не более 512х384х16
Магнитоныч (2005-04-26 21:25:00) [7]Ээ. [7] - это бысто узнать, отличаются ли изображения.
А по поводу быстрого доступа к пикселам - смотри статью "Быстро поставить точку" (где-то на пятой странице в статьях).
matt (2005-04-26 21:23:00) [8]Магнитоныч (26.04.05 21:20) [7]
как я понял ситуация отлична, поскольку нужно знать конкретные отличия
Магнитоныч (2005-04-26 21:20:00) [9]http://delphimaster.ru/cgi-bin/forum.pl?id=1114008218&n=7
matt (2005-04-26 20:59:00) [10]ИМХО это другое...
моя мысль подразумевала выделение неких основных деталей картинки и сравнения ее со следующей
vic_774N (2005-04-26 20:43:00) [11]проще говоря разбить картинку на КАДРЫ-УЧАСТКИ и сравнивать их, а отличающиеся - передавать ... так ?
matt (2005-04-26 20:40:00) [12]>vic_774N (26.04.05 20:35) [3]
а это некая астрактная картинка случайно взятая? или кадры помещения или т.п.?
если последнее - на картинке1 выделить вертикальные - горизонтальные линии, и сравнить их с картинкой2... или что то похожее с этим..
vic_774N (2005-04-26 20:35:00) [13]Задача: Если картинка2 отличается от картинки1 - переслать по LAN отличия и перерисовать картинку1 ис учетом изменений
matt (2005-04-26 20:28:00) [14]хм.. а задача найти отличия у двух картинок, или просто узнать разные ли они?
uny (2005-04-26 20:25:00) [15]в принципе нормально, со временем всё получится