1

guvcviewのMicrosoftLifeCamCinema(Ubuntu)を使用すると、1280x720で30fpsが得られます。queryframe私のOpenCVプログラムでは、10 fpsしか取得できません(showimage画像処理は行われていません)。gstreamerに問題があることがわかりました。解決策は、gstreamerでcapsfilterを設定することです。ターミナルでは、次のように設定できます。

gst-launch v4l2src device=/dev/video0 !
'video/x-raw-yuv,width=1280,height=720,framerate=30/1' ! xvimagesink

これはうまくいきます!質問は:

  1. これをc++/ OpenCVプログラムに実装するにはどうすればよいですか?
  2. または、常にこのcapsfilterを使用するようにgstreamerを設定することは可能ですか?

この質問オプション3はすでに見つかりましたが、Webカメラで動作させることができません。

4

2 に答える 2

1

残念ながら、ウェブカメラを1280x800に設定していたため、最大10fpsのYUVYを使用する必要がありました。プログラムで1280x720に戻すと、30fpsになりました

于 2012-05-29T12:26:04.340 に答える
1

残念ながら、カメラから取得したフレームのフォーマット(YUV)を設定する方法はありませんが、残りの設定については、以下を使用してみてくださいcvSetCaptureProperty()

cvSetCaptureProperty(capture, CV_CAP_PROP_FPS, 30);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 1280);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 720);

フレームサイズの設定が機能しない場合は、次の投稿を読むことを強くお勧めします:OpenCVでのカメラキャプチャ解像度の向上

于 2012-05-18T13:20:15.730 に答える