問題タブ [frame-grab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
video - (アプリからではなく) ハードウェア オーバーレイからビデオ フレームを取得するには?
現在ハードウェア オーバーレイにあるビデオからフレームを取得する方法を探していましたが、確実なものは見つかりませんでした。私が見つけたものはすべて、再生中のビデオからフレームを取得するため (アプリで)、またはアプリで実際にフレームを取得する方法の良い例を見つけることができないフィルターを作成するためです (または、アプリをプレーヤーで「インストール」して選択する必要のないメモリ内フィルター?)。
それで、私の質問は、どうすればこれを行うことができるでしょうか? フィルターでそれが可能であることは知っています。フィルターでフレームを取得してアプリに送信する方法の良い例はありますか? または、何らかのプロシージャコールにフックして、そこからフレームを取得する方法はありますか?
DirectX がすべての DirectX 情報を取得するためにフックが行われているのを見てきましたが、ハードウェア オーバーレイは DirectX ではありませんか? または、DirectX にフックして、そこからフロント バッファーを取得することはできますか?
この問題に関するリソースを探してきましたが、ぐるぐる回っていますが、DirectX サーフェスにオーバーレイを配置したい人がいるという事実は役に立ちません。多くの結果がそのトピックに関するものです。
関連する場合は、C ++でのソリューションを好みます(私が持っているアプリはC ++であり、現在、画面からスクリーンショットを取得する「通常の」方法を使用しています。これはもちろん、ハードウェアオーバーレイ用に黒い長方形を残します)。
c++ - Windows CE 7 で使用する ISampleGrabber の実装方法
ここからコードを再利用しようとしました
http://www.codeproject.com/Articles/28790/Creating-Custom-DirectShow-SampleGrabber-Filter-fo
Windows CE 7 でカメラからフレームをキャプチャするために必要な SampleGrabber を実装します。
問題は、CTransInPlaceFilter でソリューション ブレークをコンパイルすることです。存在しないようです。
これに対する他の解決策はありますか。厳密に SampleGrabber を必要とするわけではありませんが、他のもので十分ですが、高速である必要があります。
c - 書き込み速度が遅い問題の診断
ですから、プログラミングの経験がある人なら誰にでも明らかなように思えるかもしれませんが、私にはそうではないこの質問について誰かが私を助けてくれることを願っています! 多くのことについて適切な用語を知らないため、下手な説明をお許しください。
基本的に、フレームグラバーカードがインストールされている古い(っぽい)コンピューター(Matrox Meteor II)を使用してプロジェクトを継承しました。私の基本的な目的は、ライブ ビデオをカメラからリアルタイムでキャプチャし、圧縮せずにコンピュータのハード ディスクに書き込むことです。カードのプログラミングは C で行われ、Matrox Imaging Library (MIL) と呼ばれるバンドルされたライブラリを使用します。
現在、すべての画像をビット配列として生で書き込み、imageJを使用してそれらを表示しています。ダブル バッファリングを使用する基本的なプログラムを作成したので、画像がバッファにキャプチャされてからテキスト ファイルに書き込まれ、次の画像が別のバッファにキャプチャされます。以下にコード スニペットを示します。すべての M プレフィックス コマンドは MIL ライブラリからのものです。ただし、私を助けるためにそれらを実際に理解する必要はありません。
私は次のものを使用します:
私の問題は、24 fps のフレーム レートで上記を実行したいということですが、画像をキャプチャしてハードディスクに書き込むプロセスが、それよりもわずかに遅い場合があることがわかりました (速度の低下には一貫性がありませんが、プログラムはときどき 1 つのフレームに ~500 ミリ秒かかることがあります)。
これらの速度低下の原因を診断する方法を誰かが知っているかどうか、そしてそれが私のハードディスクの書き込み速度であるかどうか疑問に思っていました.
wpf - VLC によるフレーム グラブ
VLC.DotNet dll を使用して、WPF アプリケーションで RSTP/h.264 ストリームを再生しました。ここで、このストリームのいくつかのフレームを処理する必要があります。
VLC.DotNet にはフレーム グラビングの方法がありますか?
c# - Matrox コマンドを使用したフレーム キャプチャ
カメラからのビデオ ストリームの fps を (10 として) 設定し、5 フレームごとにフレームを取得する必要があるプロジェクトに取り組んでいます。私は、他の誰かによってすでに半分書かれているプログラムに取り組んでいます。問題は、Matrox Framegrabber dll を使用したことです。デバイスには Matrox Frame Grabber もあります。しかし、C# でフレームグラブのコマンドが見つかりません。C++ の次のコードを見つけました。
どこ
上記のコマンドは、ディスプレイを割り当てます。誰かがC#でプログラムを書くのを手伝ってくれませんか. また、Matrox dll の経験がある方は、フレーム キャプチャと fps の設定方法について教えてください。ありがとう。
matlab - Matlab: 3 つの uint8 から 2 つの 12 ビット数値へ
R、G、B 行列を返すフレーム グラバーがあります (つまり、X、Y、{R、G、B})
しかし、データを 2 つの 12 ビット ベクトルに分割する必要があります。これをすばやく行う方法がわかりません(すべてを文字列に変換するのはひどいです)。
誰かが私を助けてくれたら、ありがたいです。皆さんありがとう!
[編集] これが私が言いたいことです: X、Y、RGB、FrameNumber の 4 次元のデータ オブジェクトがあります。
たとえば、data(1,1,1,1) とすると、1 行目、1 列目、赤チャンネル、フレーム 1 が得られます。
問題は、私のカメラが赤外線で、実際に 2 つの 12 ビットの数値を吐き出していることです (完全にカスタムです)。だから私はこれを取る必要があります: data(1,1,1,1),data(1,1,2,1),data(1,1,3,1), それらを連結し、ユーザーに返す 2x12 ビット数字。
文字列の場合:
連結は私に与えます:
このピクセルについては、ユーザーに戻る必要があります: [403,74F]
[私の例についてのお詫び: matlab で 4D 行列をすぐに考え出そうとしましたが、それを使用してからかなり時間が経っているため、実際にどのように構築されているかを理解するのに時間がかかります!]
c++ - QCameraInfo がフレーム グラバーから複数のカメラを認識しない
カメラ出力を表示するアプリケーションを開発しました。カメラは、フレーム グラバー カード (2 チャネルの PCIe) を使用して接続されます。奇妙な点は、デバイス出力が 1 つしか表示されないことです。さらに、QCameraInfo
は 1 つのデバイスのみを検出しています。また、2 つのポートのうち 1 つのポートのみがQCameraInfo
クラス内で検出を提供します。
誰でも考えられる理由を教えてもらえますか。または、Qt クラスを使用して別のチャンネルを選択する方法はありますか?