私は1280 x 720 @ 60 fpsをサポートするウェブカメラを使用しています。私はKinovea(0.85.15、https://www.kinovea.org/)、1280×720 @ 60fpsのので、カメラの実行でウェブカメラを実行するとopencvでカメラfpsを設定するには?
マイコンピュータ環境は、Intel i5-4690KとのWindows7、Visual Studioの2015年、OpenCVの3.1
です。
しかし、OpencvのVisualスタジオでは、@ 60 fpsでは動作しません。
ちょうど12~15 fpsで動作します。
カメラのfpsを確認するためのコードは以下のとおりです。
#include <stack>
#include <iostream>
#include <math.h>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/videoio.hpp"
#include <opencv2/video.hpp>
#include "opencv2/imgcodecs.hpp"
#include <time.h>
using namespace cv;
using namespace std;
int keyboard;
int main(int argc, char** argv)
{
VideoCapture cap(0); //capture the video from web cam
if (!cap.isOpened()) // if not success, exit program
{
cout << "Cannot open the web cam" << endl;
return -1;
}
cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);
while ((char)keyboard != 'q' && (char)keyboard != 27)
{
Mat imgOriginal;
Mat ROOI;
clock_t a = clock();
bool bSuccess = cap.read(imgOriginal);
if (!bSuccess)
{
cout << "Cannot read a frame from video stream" << endl;
break;
}
printf("Captue Time : %f\n", double(clock() - a)/double(CLOCKS_PER_SEC));
imshow("Original", imgOriginal);
if (waitKey(1) == 27)
{
cout << "esc key is pressed by user" << endl;
break;
}
}
return 0;
}
上記のコードでは、私は "キャプチャ時間"をチェックし、それは通常0.07秒〜0.09秒を記録していました。
私はVideoCapture :: set(CV_CAP_PROP_FPS、60)を試みますが、動作しません。 (コードVideoCapture :: get(CV_CAP_PROP_FPS)を使用してFPSを取得すると、値0が返されます)。
ウェブカメラのFPSを制御するにはどうすればよいですか?
ありがとうございました。
このスレッドはお持ちですか? (http://stackoverflow.com/questions/19662193/opencv-videocapturegetcv-cap-prop-fps-returns-0-fps) - ウェブカメラには一般的に、変更できない固定のフレームレートがあります。 – Dai
@Daiご返信ありがとうございます。しかし、Webカメラに固定されたフレームレートがある場合は、Kinoveaプログラムで60 fpsの動作がわかりません。 Kinoveaとopencvの違いは何ですか?ありがとう。 –
カメラがさまざまな入力レベルをサポートしているかどうかによって大きく異なります。私はOpenCV + OpenNIがVideeCapture(Kinectと連携して動作する)を設定する方法の例を挙げることができます: 'modeRes = m_capture.set(CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE、X);'、 'X'はその場合、' {CAP_OPENNI_VGA_30HZ、CAP_OPENNI_SXGA_15HZ 、CAP_OPENNI_SXGA_30HZ} '。私は、OpenNIが解像度設定内でそれをエンコードすると思います。 – hauron