2011-02-07 7 views
1

私は現在、コントロールの1つが画像ストリームを表示するWPFアプリケーションを開発中です。ウェブカメラとよく似ています。これらのイメージはIPカメラから発信され、固定されたHTTP URLによってのみアクセスでき、常に同じ名前になります。画像をキャプチャしても問題ありません。IPcamの画像ストリームを表示

BitmapImage bitmapImage = new BitmapImage(); 

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

    return bitmapImage; 

これは多く機能しています。この問題は、複数のカメラ(6以上)を接続しようとすると、アプリケーションが異常終了し、最終的にクラッシュする場合に発生します。すべてのカメラは別のスレッドbtwで実行されます。

私は基本的な問題を特定しました。最終的に約600画像/秒(約30Mb /秒)を処理するアプリケーションが必要なので、(高レベル?)ビットマップを作成するとリソースが多すぎます。

一言で言えば、私はこの検索/レンダリングプロセスをより効率的にする方法を模索しています。

ありがとうございます!

UPDATE:

は、.NET 4 WPFで作業Imは、カメラ自体は、イーサネットによってアクセス、MOBOTIXのM12であり、おそらく言及し忘れました。

+1

私はMobotixを知っていて、またWPFの.Net 4に取り組んでいます。同様の問題があります。 – Nasenbaer

+0

@Nasenbaer:あなたはそれらを解決することができましたか? – rumblefx0

+1

私の場合は、カメラがフレームをストリームする間隔よりも短い間隔で画像を更新する独自のUIクラスを追加することで解決できます。内部的にImageSourceの場合はデフォルトのBitmapで作業していますので、メモリコンバータを使用しました。ガベージコレクタ 'GC.Collect'も見てください。あなたの場合、メモリは何ですか?私の場合、すべてが機能しています。しかし状況はあなたとは異なります。私はいくつかのMobotixカメラをテストしていません:-)あなたのコードを共有したいのであれば、あなたの問題をSVNまたはFTPで解決しようとすることができます。 – Nasenbaer

答えて

0

、まだ興味がある人々のために - 私たちは、日付が、それは箱から出して、物事のこれらの種類を行うことができますaForgeフレームワークとhttp://www.aforgenet.com/aforge/framework

を実装を管理しました。

1

私はこの権利を得ると、各カメラのフレームレートは100fpsですか? (あなたは6つのカムのために600画像/秒を言及する)。 プロファイリングによってボトルネックを特定できますか?非常に遅れて更新として