【问题标题】:unable to load picture with opencv with vs2013vs2013无法用opencv加载图片
【发布时间】:2015-08-02 06:41:15
【问题描述】:

我正在阅读 Learning CV 书,我遇到了第一个示例并遇到了这个问题

使用 OPENCV 3.0.0 和 VS 2013,添加并检查了所有库。

代码如下

 #include "opencv2/highgui/highgui.hpp"

int main( int argc, char** argv)
{
    IplImage* img = cvLoadImage(argv[1]);
    cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
    cvShowImage("Example1", img);
    cvWaitKey(0);
    cvReleaseImage(&img);
    cvDestroyWindow("Example1");
}   

所以编译或构建后,我得到一个名为Example1的窗口,它是灰色的,窗口中没有图像。

这是正确的吗?或者我应该期望得到什么?

【问题讨论】:

  • 您在调试配置中作为命令行参数提供了要加载的图像的正确路径,?您的示例与您所能获得的一样多:nearly verbatim 在线教程。
  • 您好,感谢您的快速回复。我不认为我这样做......我的代码和你给我的链接之间的区别是这一行, 'cvLoadImage(argv[1])' 。如何使用我的代码指定图像的路径?

标签: c++ image opencv visual-studio-2013


【解决方案1】:

您没有正确加载图像,即argv[1] 的路径无效。你可以这样检查:

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

int main(int argc, char** argv)
{
    IplImage* img = cvLoadImage(argv[1]);
    //IplImage* img = cvLoadImage("path_to_image");

    if (!img)
    {
        std::cout << "Image not loaded";
        return -1;
    }

    cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
    cvShowImage("Example1", img);
    cvWaitKey(0);
    cvReleaseImage(&img);
    cvDestroyWindow("Example1");
}

您也可以直接在代码中提供路径,例如:

IplImage* img = cvLoadImage("path_to_image");

您可以参考here 了解您的路径可能错误的原因。

您也不应该使用旧的 C 语法,而应使用 C++ 语法。你的例子是这样的:

#include <opencv2\opencv.hpp>
#include <iostream>
using namespace cv;

int main()
{
    Mat3b img = imread("path_to_image");

    if (!img.data)
    {
        std::cout << "Image not loaded";
        return -1;
    }

    imshow("img", img);
    waitKey();
    return 0;
}

您可以参考this answer 了解如何正确设置 Visual Studio。

【讨论】:

    【解决方案2】:

    不清楚是否正在加载图像。如果找不到图像,OpenCV 将静默失败。

    试试

        auto img= cv::imread(name, CV_LOAD_IMAGE_ANYDEPTH);
        if (img.data() == nullptr)
        {
            std::cout << "Failed to load image" << std::endl;
        }
    

    【讨论】:

      猜你喜欢
      • 2013-11-26
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 2021-03-27
      • 2013-12-20
      相关资源
      最近更新 更多