Yocto Linux で実行されるシングル ボード コンピューターに opencv アプリケーションを移植しようとしていますが、その間に多くの問題が発生しました。カーネルの設定ファイルなどを変更することで解決するドライバ関連の問題。これらの問題をすべて解決することができ、最終的に、スナップショット コードのハイライト行の下で「選択タイムアウト」エラーが発生しています。
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/core/core.hpp>
using namespace std;
int main(int, char**) {
cv::VideoCapture camera(0);
if (!camera.isOpened()) {
return 1;
}
cv::Mat frame;
while (camera.isOpened()) {
***camera >> frame;***
}
return 0;
}
このコードはローカル マシンでは機能しますが、SBC では機能しません。この問題を解決する手がかりはありますか? 必要に応じて、詳細をお知らせいただければ幸いです。
PS Camera は適切に検出されているため、!camera.isOpened()
コードでエラーがスローされることはありません。行で「select timeout」エラーが発生しcamera >> frame
ます。