1

EDSDKを使ってライブビュー機能を実装したいです。EdsGetPointer を使用して、メモリ ストリーミング用のメモリ アドレスのポインターを取得しました。次に、ストリーミング画像を PC に表示します。

ATL や CImage などの VisualC の API を使用して、メモリ ストリームのポインターをパラメーターとして渡すだけでストリーミング イメージを表示できる人がいると読んだことがあります。関数はストリーミング イメージを単独で取得できます。コンピューターに VisualC がインストールされていないため、ストリーミング画像を表示するために OpenCV を使用することを考えています。ストリーミング画像を表示するために使用できる OpenCV の関数はありますか? または、EDDSK からのストリーミング イメージを処理するために使用できる他の方法はありますか?

4

2 に答える 2

3

データをにパックし、ループIplImageで使用cvShowImageして表示できます: http://opencv.willowgarage.com/documentation/user_interface.html 欠点 は、OpenCV イベント ループに縛られていることです。

代替手段があります。過去に、OpenGL を使用してイメージをテクスチャとしてペイントし、ビューポートを管理したり、その上に描画したりしました。GLUT を使用すると、シンプルで柔軟な作業用 GUI をすぐに取得できます。その利点は、ライブラリに OpenGL キャンバス ウィジェットがある限り、作成した OpenGL コードが、使用する他の UI ライブラリに移植できることです。私がいつもやっていることは、Camera->IplImage->OpenGL Texture->wxWidgets glCanvas です。実際の画像処理などには今でも OpenCV を使用しています。これは完全にクロスプラットフォームであり、有料版の VC++ は必要ありません。

于 2011-10-11T15:00:28.300 に答える
1

あなたはライブビューのためにそれをしたいですか? ライブビューでない場合は、ストリーミング イメージをホストに保存できます。

Error = EdsCreateFileStream(dirItemInfo.szFileName, EDSDK.EdsFileCreateDisposition.CreateAlways, EDSDK.EdsAccess.ReadWrite, out stream);

それからあなたはそれをロードすることができます

IplImage *inImg = cvLoadImage("photo2.jpg");

その後、opencvで画像を処理できます。

于 2012-02-22T10:09:12.667 に答える