Комментарии 11
Прошу меня простить, но использование для этих целей Open CV подозрительно напоминает мне процесс забивания гвоздей микроскопом.
Можно попробовать поиграться с другими методами порогового преобразования изображения.
Вот еще пара книжек по OpenCV:
Mastering OpenCV with Practical Computer Vision Projects
OpenCV 2 Computer Vision Application Programming Cookbook
Вот еще пара книжек по OpenCV:
Mastering OpenCV with Practical Computer Vision Projects
OpenCV 2 Computer Vision Application Programming Cookbook
Поиск по шаблонам 2х2-5х5 работает отлично для таких задач. Конечно, GetPixel() тут не прокатит, но немного unmanaged кода и можно добиться почти мгновенного поиска.
Подход интересный, спасибо. Смущает, что предварительно необходимо подготовить все варианты отображения объектов (и шары, и лягушка — крутятся вокруг своей оси), а если это дело автоматизировать, то возвращаемся к исходной задаче — предварительному выделению объектов.
Собираюсь попробовать этот метод в будущем, если будут проблемы с производительностью.
Собираюсь попробовать этот метод в будущем, если будут проблемы с производительностью.
Для увеличения точности рекомендуется предварительно размывать (или как-нибудь ещё) изображение, чтобы избавится от мелких деталей, портящих результат.
Фон можно не вычитать, а применять как маску: если пиксель сильно отличается от фона — выводить пиксель, если примерно равен фону — выводить 0.
Фон можно не вычитать, а применять как маску: если пиксель сильно отличается от фона — выводить пиксель, если примерно равен фону — выводить 0.
Дополнительные пути
— Можно анализировать уменьшенное изображение
— Можно разбить изображение на квадраты, вычислить средний цвет пикселей. Cравнивать полученные значения на близость к нужным цветам. Если попадает в нужный диапазон — искомая область. Заполнить массив в соответствии с этими значениями. После чего можно выделить значения, которые будут центрами шаров.
— Можно анализировать уменьшенное изображение
— Можно разбить изображение на квадраты, вычислить средний цвет пикселей. Cравнивать полученные значения на близость к нужным цветам. Если попадает в нужный диапазон — искомая область. Заполнить массив в соответствии с этими значениями. После чего можно выделить значения, которые будут центрами шаров.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Бот для аркады. Часть №2: подключаем OpenCV