Я хотел бы знать, как лучше всего сравнивать 2 изображения RGB. Я хотел бы либо найти список ограничительных рамок для разницы. Или единый ограничивающий прямоугольник для всех изменений. Любой в порядке.
Скажем, я сравниваю 2 экрана рабочего стола, и на одном из изображений время в правом нижнем углу отличается, а значок переместился в верхний левый угол экрана.
Алгоритм может найти ограничивающие рамки значка, который был перемещен, и число (секунда), которое изменилось, что дает мне 2 поля, содержащие изменения. Или он может генерировать логику типа MIN/MAX и генерировать одно поле, включая объединение эти 2 изменения. В этом случае поле будет размером во весь экран, как мой пример для наихудшего сценария. (Я знаю, что можно объединить коробки и получить одну объединенную коробку). Но, возможно, есть более быстрый алгоритм, чем поиск каждой коробки отдельно. Вот почему алгоритм, который находит объединение, также в порядке.
Я сравнил пиксель за пикселем и нашел минимальное максимальное значение для всего экрана, где изменения существуют во вложенном цикле, подобно моде.
Я даже пробовал это на OPENCL, но скорость для изображений 4K неприемлема, поскольку она 0^2.
Есть ли поисковый алгоритм, который мог бы ускорить этот поиск на экране. Может быть, представить это в виде графика. Что-то вроде A* или какого-то другого эвристического поиска?
Может быть, уменьшить масштаб и выполнить поиск, а затем второй поиск только в разделе, в котором обнаружено изменение?
Может конвертация в YUV поможет?