0

我们正在尝试将 opencv 应用程序移植到在 Yocto Linux 上运行的单板计算机上,在此过程中我们遇到了很多问题。与驱动程序相关的问题,通过更改内核的配置文件等来解决。我们能够解决所有这些问题,最后,我们在快照代码的下面突出显示行中遇到了“选择超时”错误。

#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()代码中抛出任何错误。它在行给出错误“选择超时”错误camera >> frame

4

0 回答 0