【问题标题】:cvLoadImage for IplImage working, but cv::imread for cv::Mat not workign用于 IplImage 的 cvLoadImage 工作,但用于 cv::Mat 的 cv::imread 不工作
【发布时间】:2013-08-13 04:48:23
【问题描述】:

我遇到了一个奇怪的问题,我无法使用cv::imread 从文件系统中读取基本图像文件。因此,下面的结果导致 imageInput 具有空数据,行和列设置为 0。

cv::Mat imageInput =  cv::Mat();
imageInput = cv::imread("abc.jpg",cv::IMREAD_COLOR);

有趣的是,注释掉上面的代码后,下面的代码就可以读取iamge了:

//cv::Mat imageInput =  cv::Mat();
//imageInput = cv::imread("abc.jpg",cv::IMREAD_COLOR);
IplImage *rImg;
rImg = cvLoadImage("abc.jpg", CV_LOAD_IMAGE_COLOR);

rImg 的宽度为 3296,高度为 2256,如预期的那样。
我不知道这怎么可能。请帮忙。 在这两种情况下,构建似乎都很好。我尝试同时使用 opencv-2.4.5 和 opencv-2.4.6

【问题讨论】:

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


    【解决方案1】:

    我现在已经能够找出问题所在了。
    问题是提到了发布构建静态库而不是调试构建静态库。
    之前的 VC++ 项目,我在调试模式下包含了以下 lib 依赖项:opencv_core245.lib;opencv_highgui245.lib;opencv_imgproc245.lib;opencv_video245.lib

    将其更改为opencv_core245d.lib;opencv_highgui245d.lib;opencv_imgproc245d.lib;opencv_video245d.lib 后,我可以使用 imread 读取图像而不会出现任何问题。

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2013-04-02
      • 2011-06-07
      • 1970-01-01
      • 2012-06-24
      • 2012-07-15
      相关资源
      最近更新 更多