Вверх ↑
Ответов: 1429
Рейтинг: 50
#1: 2012-07-15 07:46:16 ЛС | профиль | цитата
(опишу как сделал я)
(не исключено, что кто-то предложит вариант получше)

1. Сканируй несколько горизонтальных рядов "цветов пикселей" в массивы[offtop]((насколько точно надо столько и линий) (пикселы можно и через один, через 5-10 штук сканировать))(сразу в FTCG!)[/offtop]
2. Сравнивай массивы перебором, если количество несовпадений цветов(неравенств) свыше какого-то порога, значит = картинка изменилась.

3. Понятно, что картинки шумят, поэтому при сравнении пикселей надо задать небольшой диапазон различий цвета по "фазе", "яркости" и "сатурации"(или в RGB). Чем шире выставишь допустимый разброс, тем слабее будет чувствительность к шуму.
[offtop](еще можно усреднять цвет пикселя с его соседом, это чуть сложнее)[/offtop]
4. Плюс, если "стол шатается", то картинки распознаются как разные. Можно выставить условие, что если N-ное количество кадров выдает "различия", то только тогда принимать решение о том, что картинки изменились, что тоже сложнее

Всё это не очень сложно, но без FTCG скороть сравнения двух фоток у меня измерялась в десятках секунд(что для видео-потока не годится), а с FTCG массивами всё гуд.

p/s
поделиться схемой не могу, там другая специфика была, и это сложно запустить, проще заново собрать.

Хотя, для такой задачи, раз не надо знать местоположение обьекта, можно просто суммировать все цвета и яркости выборки пикселей двух соседних картинок и проверить вхождение полученного числа в диапазон, который защищает от шума.[offtop](тогда не нужны ни массивы ни FTCG)[/offtop]
карма: 0

0