2011-02-07 3 views
1

В настоящее время я разрабатываю приложение WPF, в котором один из элементов управления отображает поток изображений; как любая веб-камера. Эти изображения происходят от IP-камеры и могут быть доступны только по HTTP-адресу, который фиксирован и всегда является sames. Теперь захват изображений не представляет проблемы, черезОтображение потока изображений IPcam

BitmapImage bitmapImage = new BitmapImage(); 

    bitmapImage.BeginInit(); 
    bitmapImage.UriSource = uri; 
    bitmapImage.CacheOption = BitmapCacheOption.None; 
    bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache; 
    bitmapImage.EndInit(); 

    return bitmapImage; 

Это много работает. Проблема возникает, когда я пытаюсь подключить несколько камер (более 6), приложение задыхается и, в конечном счете, падает. Все камеры работают по отдельному потоку.

Я определил основную проблему: создание растрового изображения (highlevel?) Слишком много ресурсов, так как мне нужно приложение для обработки около 600 изображений в секунду в реальном времени (около 30 Мбит/с).

В двух словах я ищу способ сделать этот процесс поиска/рендеринга более эффективным.

Заранее благодарен!

UPDATE:

Забыл упомянуть, возможно, им работать в .NET 4 WPF, сама камера является Mobotix M12, доступ к локальным сетям.

+1

Я знаю Mobotix и также работаю над .Net 4 в WPF. Имеют схожие проблемы. – Nasenbaer

+0

@Nasenbaer: вам когда-нибудь удалось их решить? – rumblefx0

+1

В моем случае я мог бы решить эту проблему, добавив собственный пользовательский интерфейс для обновления изображения за меньший промежуток времени, чем камера передает кадры. Я использовал конвертер памяти, потому что изнутри я работаю дополнительно с битовой картой по умолчанию в случае с ImageSource. Также взгляните на сборщик мусора 'GC.Collect'. Что делает память в вашем случае? В моем случае все работает. Но ситуация отличается от вашей. У меня нет нескольких камер Mobotix для тестирования :-) Если вы хотите поделиться своим кодом, я могу попытаться исправить вашу проблему с помощью SVN или FTP. – Nasenbaer

ответ

0

В очень поздно обновление и для тех, кто еще интересно - нам удалось реализацию с каркасом aForge http://www.aforgenet.com/aforge/framework

While датированный, он может делать такого рода вещи из коробки.

1

Итак, если я прав, каждая камера имеет частоту кадров 100 кадров в секунду? (вы указываете 600 изображений в секунду для 6 кулачков). С некоторым профилированием вы можете определить узкое место?

Смежные вопросы