Qt与OpenCV:程序意外完成

Qt与OpenCV:程序意外完成,qt,opencv,Qt,Opencv,我刚刚安装了Qt5.15,正在测试它如何与opencv一起工作。我下载了预构建Opencv4.3,并设置了一个.pri文件,以便在Qt中部署 include和libs在.pri文件中如下所示: 然后我运行一个简单的图像显示domo: #include "opencv2/opencv.hpp" using namespace cv; Mat img = imread("image.png"); if(img.empty()) { qDebug()<<"Could not f

我刚刚安装了Qt5.15,正在测试它如何与opencv一起工作。我下载了预构建Opencv4.3,并设置了一个.pri文件,以便在Qt中部署

include和libs在.pri文件中如下所示:

然后我运行一个简单的图像显示domo:

#include "opencv2/opencv.hpp"
using namespace cv;

Mat img = imread("image.png");

if(img.empty())
{
    qDebug()<<"Could not find the image";
}
else
{
    namedWindow("Image");
    imshow("Image", img);
}
结果错误消息:程序意外完成。这一进程被迫结束

没有与OpenCV链接,Qt本身就可以正常工作


问题的原因是什么?

我发现这个问题是由于Qt Creator中设置的调试器不正确造成的。请参阅帖子。还有,官方文件和

不清楚示例代码的位置。主要是吗? 通常,在OpenCV中,您也有一个事件循环,就像在Qt中一样,但它是隐藏的。 所以如果你真的想看到这个名字,你需要打电话

如果您定期这样做,可以像cv::waitKey1那样调用它

但一般来说,您应该只在OpenCV中进行图像处理,将cv::Mat转换为QImage,并在Qt中显示该图像。

对于崩溃

我的第一个猜测是您的环境变量设置不正确。请检查您是否分配了环境。变量正确

在Qt中编写imshow是行不通的。正如tr3w所建议的,您应该转换为qimage

Mat-img

QImage img1=QImageuchar*img.data,img.cols,img.rows,img.step,QImage::Format_Indexed8


您可以替换为支持的图像格式,而不是indexed8。

您可以指定代码的位置吗?您是否尝试过使用gdb之类的调试器来识别问题发生的线路?您有一种独特的回答方式。这使得你很容易发现你在多个问题上发布了相同的答案。请不要那样做。
#include "opencv2/opencv.hpp"
using namespace cv;

Mat img = imread("image.png");

if(img.empty())
{
    qDebug()<<"Could not find the image";
}
else
{
    namedWindow("Image");
    imshow("Image", img);
}