C++ OpenCV 运行报错问题求助

1. 系统软件版本:Ubuntu

2. 问题涉及的技术领域:其他

3. 问题描述:使用cmake编译调用opencv函数的纯C++代码,编译成功运行函数时使用imshow和imwrite函数时会报错,注释掉该函数程序可以运行,但无法看到实时运行结果,请问是该开发板目前不支持如此吗?’

4. 复现概率:必现

5. 软件上是否有做自定义修改:否

您好,如果使用的是server版本的ubuntu,会出现报错的情况,可以使用桌面版本系统进行测试

补充一下代码和运行结果:

代码:

#include “opencv2/core.hpp”

#include “opencv2/imgproc.hpp”

#include “opencv2/highgui.hpp”

#include “opencv2/videoio.hpp”

#include

using namespace cv;

using namespace std;

int main()

{

cout << "Built with OpenCV " << CV_VERSION << endl;

Mat image;

VideoCapture capture;

capture.open(8);

if(capture.isOpened())

{

cout << “Capture Is Opened” << endl;

capture >> image;

imwrite(“~/opencv/opencv-4.5.1/samples/cpp/example_cmake/picture.jpg”,image);

for(;:wink:

{

capture >> image;

if(image.empty())

break;

// imshow(“Sample”, image);

if(waitKey(10) >= 0)

break;

}

else

{ }

return 0;

}

结果:

root@ubuntu:~/opencv/opencv-4.5.1/samples/cpp/example_cmake# ./opencv_example

Built with OpenCV 4.5.1

[ WARN:0] global /root/opencv/opencv-4.5.1/modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created

Capture Is Opened

Segmentation fault

请问X3SDB也可以直接安装X3Pi的桌面系统是吗?

我也遇到同样的问题,我用的是桌面版本,一直都出现这个问题。

你好,sdb不支持的

sdb不支持是啥意思,能解释清楚一点吗? 如果是系统不支持,我也就不用再花时间去解决了。

我回复的是上一位朋友,桌面显示肯定是支持的

我的是RDK X3 ,用的2.0.0版本的镜像,里面就有opencv,遇到这个问题,调用imshow就会出错。后面自己重新安装opencv,还是遇到这个问题,始终解决不了。

您好,在非Desktop的控制台(例如在ssh拉起)拉起openCV的程序imshow会报错,需要将imshow输出重定向到桌面程序

可以参考这篇博客:https://developer.horizon.cc/forumDetail/189779342644182098