Вот два изображения, одно из которых было сделано до того, как хирург совершил какое-то действие, а другое — после.
Разница: (После — До) + 128. (Добавление 128 — только для лучшего изображения)
Как указывают белые стрелки, произошло глобальное движение, затрагивающее все объекты.
Итак, мне нужно оценить это, чтобы получить более ценную информацию о том, что происходит на сцене.
Я уже знал что OpenCV 3.0
Помогает в этом контексте, где реализованы некоторые методы, которые оценивают доминирующее движение между двумя изображениями или двумя списками точек. Но я пользуюсь пока OpenCV 2.4.x
потому что у меня есть зависимости с библиотеками, уже установленными на моем компьютере, поэтому я ищу альтернативные решения или любой другой код, который делает то, что я хочу.
Вы ищете плотный оптический поток алгоритм:
Результат для
cv::calcOpticalFlowFarneback(img1, img2, flowField, 0.5, 3, 10, 5, 5, 1.1)
это следующее поле потока, где вы четко видите изменения:
Что касается глобального обнаружения движения:
Других решений пока нет …