Обработка изображений в реальном времени (30 кадров в секунду) vb.net

#vb.net #performance #image-processing #lockbits

#vb.net #Производительность #обработка изображений #блокировки

Вопрос:

Я не ищу здесь никакого кода!

Мой вопрос достаточно прост: может ли средний домашний компьютер работать со скоростью обработки изображений 30 кадров в секунду 1024×768, используя vb.net .

Еще несколько деталей; 1. Я не ожидаю жесткого ответа «да». Я надеюсь, что никто не сможет дать мне жесткий ОТКАЗ (например. возможно, это не из-за памяти, необходимой для … блокировкам требуется не менее 0,5 с для … и т. Д.) 2. Я спрашиваю, поэтому я не трачу следующие недели 3 или около того, пытаясь сделать это, если идея в корне ошибочна. 3. Требования к разрешению и FPS приведены только для примера, половина или удвоение fps или разрешения не должны влиять на ответ (насколько я могу судить). 4. Приемлем любой метод обработки изображений. Фактические изображения не будут редактироваться, но мне нужно будет прочитать значения RGB (для использования в отдельном параллельном алгоритме).

Примечание для редакторов: я надеюсь, что на эти вопросы не будет идеального ответа, поскольку это означает, что это возможно. Однако, если есть веская причина, по которой это невозможно, тогда этот вопрос не основан на мнении. Просто хотел прояснить это до начала голосования за закрытие! : D

Комментарии:

1. Чистый .NET? Возможно — в зависимости от характера выполняемой вами обработки изображений и вашей системы. Для чего-либо ресурсоемкого вы бы хотели использовать Emgu CV / Open CV, который написан на оптимизированном c / c .

2. Приемлем любой метод обработки изображений. Например, что? Подсчет количества пикселей выше определенного порога? Вычисление производных? Поиск краев? Узнайте, что показывает изображение? Все это очень разные операции с очень разным временем выполнения. Простая итерация ~ 1 м пикселей занимает гораздо меньше 1/30 с (около 2 мс на моей машине для простого массива, даже меньше, если распараллелить). Критическим моментом является представление памяти, передача, согласованность кэша и т. Д.

3. Я согласен с @NicoSchertler, даже не зная, чего вы пытаетесь достичь с помощью своей обработки, является ли это неопровержимым, поскольку некоторые алгоритмы выполняются за миллисекунды на средних машинах, а другие — за часы на суперкомпьютерах. Не уверен, что VB — это правильный путь, ты никогда не видел ничего с высокой производительностью, закодированной в нем.

4. Просто чтобы уточнить, я спрашиваю, можно ли использовать vb для предоставления мне значений RGB (в массиве или каком-либо подобном формате) каждого пикселя для использования при обработке в другом потоке. Здесь речь не идет о другой обработке потоков… может VB.net достаточно быстро выдавать данные?

5. Как я уже упоминал в своем примере: да, это возможно.