【问题标题】:OpenCV C++ imshow does not workOpenCV C++ imshow 不工作
【发布时间】:2017-06-26 03:03:01
【问题描述】:

我是 OpenCV 的新手。如果有人回答这个问题,我将不胜感激。我尝试读取图像并显示它。下面是我从文档中复制的代码的副本。但是,只是弹出一个窗口,没有实际图像:

#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    Mat img = imread("myimage.jpg", CV_LOAD_IMAGE_UNCHANGED);

    if (img.empty()) 
    {
        cout << "Error : Image cannot be loaded..!!" << endl;
        return -1;
    }
    else
    {
        namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); 
        imshow("MyWindow", img); 
        waitKey(5000); 
    }      

    return 0;
}

【问题讨论】:

标签: c++ opencv


【解决方案1】:

我已经复制了您的代码,并将图像更改为我的本地图像,并且它可以正确显示。
看起来程序由于某种原因无法读取图像。
为什么不尝试使用图像的完整路径?

【讨论】:

  • 如果程序无法加载图像,它就不会到达imshow 部分,所以应该不会弹出任何窗口。恕我直言,这是a know bug 的又一次出现,因为这类问题最近几乎每天都出现在这里。
【解决方案2】:

代码非常正确,请确保 myimage.jpg 与二进制文件位于同一文件夹中。 尝试使用图像的完整路径或提供图像路径作为 argv[1]。

【讨论】:

  • 非常感谢您的帮助。我使用了完整路径,但它不起作用。但是当我关闭图像时,我可以在同一目录中看到一个副本。
猜你喜欢
  • 1970-01-01
  • 2013-01-10
  • 2013-11-03
  • 2021-04-18
  • 2021-03-24
  • 2015-09-18
  • 2015-02-23
  • 2020-05-18
  • 2020-07-08
相关资源
最近更新 更多