Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2016, 19:52   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Подскажите способы установить неполное окончание анимации

Из заголовка конечно непонятно в чем задача.
В моей программе отслеживается графические изменения в окне другой программы.
Я ожидаю полного окончания анимации( назовем это окончанием анимации) таким путем:

- таймер на 100 миллисекунд делает скриншот, со скриншоты выделяется небольшой участок, где анимация явно присутствует.
- через ScanLine произвожу сумму RGB составляющих всех пикселей изображения.
- запоминаем 3 последних значения суммы RGB и сравниваем, если все 3 равны, то считаю анимацию полностью оконченной.

Далее у меня идет распознование нужных участков на скриншотах( назовем это распознованием образов) с базовыми рисунками более сложным вариантом через цветоразносное расстояние ( наверное по научному это Расстояние Хэмминга).
В общем путем долгого подбора коэффициентов и дополнительных критериев я добился, что на моем компе вот это сравнение трех участков с 750 базовыми изображениями занимает около 1 секунды, при этом ошибок распознования нету. Это меня устраивает.

Но, теперь я полностью убираю распознование образов и мне ненужно теперь ждать полного окончания анимации.

Вопрос как узнать что основной эффект анимации( а не не полностью) закончился?
Т.е. я узнаю полное окончание анимации, но теперь мне нужно чтобы было быстрее и не ждать полного окончания анимации.
Проблема в том что здесь нету базового изображения для сравнения, а только текущие изображения.
При сравнении их между собой черт его знает что будет.

P.S. полная длительность анимации может быть разная.

Последний раз редактировалось Illusiony; 02.05.2016 в 20:17.
Illusiony вне форума Ответить с цитированием
Старый 02.05.2016, 21:21   #2
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
- таймер на 100 миллисекунд делает скриншот, со скриншоты выделяется небольшой участок, где анимация явно присутствует.
- через ScanLine произвожу сумму RGB составляющих всех пикселей изображения.
- запоминаем 3 последних значения суммы RGB и сравниваем, если все 3 равны, то считаю анимацию полностью оконченной
Хочу такую штуку...
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 02.05.2016, 21:34   #3
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

Цитата:
теперь я полностью убираю распознование образов и мне ненужно теперь ждать полного окончания анимации.
раз нет критерия окончания, значит и узнать никак нельзя. Можно попробовать фуззи-логик, но недостаточно золота

Партизан, дай больше информации.
kutani вне форума Ответить с цитированием
Старый 02.05.2016, 21:41   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от kutani Посмотреть сообщение
раз нет критерия окончания, значит и узнать никак нельзя. Можно попробовать фуззи-логик, но недостаточно золота

Партизан, дай больше информации.
Какую информацию дать?

Первое что приходит в голову, это предположить, что чем ближе конец анимации чем менее значительно будут отличаться картинки, но на самом деле, хз.

Можно тупо просто ждать , например 2 секунды и ничего не анализировать, но бывает очень сильная и длительная анимация и через эти 2 сек там будет сплошной туман.

Последний раз редактировалось Illusiony; 02.05.2016 в 21:49.
Illusiony вне форума Ответить с цитированием
Старый 02.05.2016, 21:48   #5
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от zvygin1964 Посмотреть сообщение
Хочу такую штуку...
В каком смысле?
Или это сарказм?
На самом деле, даже, если за 100 миллисек не успевает сделать скриншот и эти манипуляции, то на общую результативность это сильно не повлияет.
В среднем у меня выходит анимация длится примерно 3 секунды, иногда 4-5 сек.
Illusiony вне форума Ответить с цитированием
Старый 02.05.2016, 22:32   #6
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
В каком смысле?
Сам такое написать не смогу никогда. Дадите код, может и смогу его на форму установить... Это интересно.
Дайте Unit1.pas файл.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 03.05.2016, 00:01   #7
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от zvygin1964 Посмотреть сообщение
Сам такое написать не смогу никогда. Дадите код, может и смогу его на форму установить... Это интересно.
Дайте Unit1.pas файл.
Боюсь он написан не программистом ( мною) поэтому читабельность и логика очень запутанная.
Там много лишнего, куча закоменченного кода. В итоге 5000 строк кода вся программа.
Это мой онлайн проектик, я его уже делаю переделываю и т.д.
Боюсь мало кто сможет разобраться в этих дебрях)
Illusiony вне форума Ответить с цитированием
Старый 03.05.2016, 10:33   #8
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

У меня у одного возник вопрос: Зачем это вдруг нужно?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 03.05.2016, 17:49   #9
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
У меня у одного возник вопрос: Зачем это вдруг нужно?
Я переделываю проект. В ходе чего отказался от распознования образов.
А для распознования образов была обязательное условие полное окончание анимации для возможности безошибочного распознования.
Теперь соответственно нет необходимости ждать полного окончания анимации. А время затраченное на ожидания окончания анимации очень кретично для проекта. Выигрыш или проигрыш в 1 секунду имеет значение и влияет на скорость работы проекта и нагруженность сервера.

Итоговые изображения будет видеть человек, таким образом допускается небольшая размытость изображения( не оконченная анимация).
Illusiony вне форума Ответить с цитированием
Старый 03.05.2016, 18:59   #10
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
Я переделываю проект. В ходе чего отказался от распознования образов.
А для распознования образов была обязательное условие полное окончание анимации для возможности безошибочного распознования.
Теперь соответственно нет необходимости ждать полного окончания анимации. А время затраченное на ожидания окончания анимации очень кретично для проекта. Выигрыш или проигрыш в 1 секунду имеет значение и влияет на скорость работы проекта и нагруженность сервера.

Итоговые изображения будет видеть человек, таким образом допускается небольшая размытость изображения( не оконченная анимация).
По методу работы ваш проект очень сильно похож на метод сжатия видео через компенсацию движения. Хотя склоняюсь к тому, что вы делаете программу, которая распознает объекты на снимках. Такие темы довольно часто были в сети, есть даже спец. библиотека по распознаванию геометрических объектов. К сожалению, не помню как она называется, но она точно есть. Остальное - лишь гадания на кофейной гуще.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, как различать способы сравнения значений и параметров KBO Помощь студентам 8 26.12.2015 00:02
Неполное решение, выручайте!!! anton.dasuik Помощь студентам 1 02.02.2013 14:25
Подскажите как програмно установить Шрифт (Visual Basic 6) С.М.С Помощь студентам 8 07.01.2009 02:03
Подскажите как установить G32 или DelphiX Teen4jump Общие вопросы Delphi 3 26.06.2007 23:50