Обнаружение движения конкретного объекта в .net
-
19-09-2019 - |
Вопрос
Мне нужно создать .net-приложение, в котором я должен обнаружить конкретный объект, который держит пользователь, с помощью камеры.
Если объект должен иметь какие-то специфические характеристики, чтобы его можно было легко распознать и обнаружить из окружающего пространства, дайте, пожалуйста, несколько советов (например, зеленый куб?)
Какую библиотеку техники/.net лучше всего использовать?Мне нужно в реальном времени перевести движение руки пользователя и соответственно отобразить анимацию на экране.
Решение
для обнаружения движения:найдите хорошие особенности (т. е. углы) и подайте их в алгоритм оптического потока Lucas-Canada.В opencv есть эти функции, но я не знаю, есть ли они в opencvnet или нет.
Если у вашего объекта есть определенная особенность, например, он самый зеленый на сцене, вы можете использовать пороговое значение.в противном случае вам придется использовать методы распознавания образов.
псевдокод:
threshold1 = 128
threshold2 = 64
foreach Pixel p in Picture
if (p.Green > 128) and (p.Red < threshold2) and (p.Blue < threshold2)
outputImage.CurrentPixel = 255
else
outputImage.CurrentPixel = 0
здесь у вас будет изображение, в котором зелень показана белым, а остальное черным.
Другие советы
Вы ищете AForge.Net.
Смотрите также Эта статья.
Я бы предложил ускориться OpenCV, Резюме Эмгу порт .NET, который я использую.