我喜歡用RPi至少60Hz捕捉圖像。我的代碼是用C++編寫的,我們有一個用於C++接口的庫here。但是這個庫的最大頻率是30Hz。 我的目標是最低60赫茲。 到目前爲止我發現的是raspistill可以達到90Hz,所以我試圖將我的C++程序連接到raspistill代碼。 我在這裏找到了一個庫PiCam,它與raspistll具有直接接口。不是很確定,它可以達到60Hz,我仍然試圖測試它,並有幾個問題。 我的查詢是使用raspistill從C++程序讀取攝像頭圖像
(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 x 480幀大小,我可以有30Hz的最大值。所以從相機讀取對我來說是瓶頸。如何使用lbrary設置更高的fps? – batuman
我可以讀取90+ fps。我不設定比率,我只是儘可能快地閱讀相框。嘗試讀取1,000幀並測量時間 - 然後減去3秒的穩定時間。我大約14秒。 –
謝謝我將執行線程,拆分圖像讀取線程和處理線程。 – batuman