少なくとも60HzのRPiを使用して画像をキャプチャするのが好きです。私のコードはC++であり、私たちはC++インターフェイスのライブラリhereを持っています。しかし、そのライブラリは最大30Hzです。 ターゲットは最低60 Hzです。 今まで私が見つけたのはraspistillですので、私はC++プログラムとraspistillコードをインターフェースしようとしています。 ここでは、ラスペistllへの直接インタフェースを持つ1つのライブラリPiCamが見つかりました。確かに、それは60Hzに行くことができる、私はまだそれをテストしようとしているいくつかの問題がある。 私のクエリはC++プログラムのraspistillを使用してカメラ画像を読む
(1)C++を使用してRPiでどのように60Hz fpsにすることが可能ですか?
(2)PiCamとのインターフェイスとして、私はすでにライブラリをコンパイル、ビルド、インストールしていますが、問題はありません。 キャプチャすると黒い画像が表示されます。何が問題なの?私のコードの一部を以下に示します。
CCamera* cam = StartCamera(640, 480,60,1,true);
char mybuffer[640 * 480 * 4];
int ret = cam->ReadFrame(0, mybuffer, sizeof(mybuffer));
cout << " ret " << ret << endl;
Mat img(480, 640, CV_8UC4,mybuffer);
imwrite("img.jpg", img);
img.jpgは黒い画像でキャプチャされます。
(3)PiCamを使用して、どのようにグレー画像に変更できますか?
現在、私はそのライブラリを使用しており、最大30Hzのフレームレートを使用しています。あなたは90Hzのfpsを持っていることをテストしましたか? fpsを設定する設定はありません。私の画像処理には約10msかかります。ファイルから画像を読み取った場合、最大100Hzに達することができます。しかし、私は640×480のフレームサイズのためにそのライブラリを使用して、私は最大30Hzを持つことができます。カメラからの読書は私にとってはボトルネックです。どのようにlbraryを使ってより高いfpsを設定できますか? – batuman
私は90 + fpsを読むことができます。私はレートを設定していません、私はできるだけ早くフレームを読んでいます。 1,000フレームを読み、時間を測定してから、3秒の安定時間を引いてみてください。私は約14秒持っていた。 –
ありがとう、私はスレッド、画像の読み取りスレッドとスレッドの分割を実装します。 – batuman