opencv调用函数imread()读取图片为空

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/im6520/article/details/75103651
  1. imread()函数无法读取到图片
    在配置好opencv后会运行一下测试程序:
#include <opencv2\opencv.hpp>
using namespace cv;
int main() 
{
    const char* name = "test.jpg";
    Mat img = imread(name);
    imshow("test", img);
    waitKey();
    return 0;
}

编译运行后出错,提示一下信息:

这里写图片描述

网上看了很多解决方案,都试了一遍,但是每个人的问题不同,也许情况就不同,所以都复制黏贴下来,自己去测试咯!

(1)图片路径问题:方案一,是把图片放在工程项目中cpp文件所在的文件夹;方案二,添加绝对路径(注意用\两个反斜杠)例如:我的图片放在E:\project\test\New2文件夹下,则路径为“E:\project\VS2015\test\New2\5.jpg”

(2)链接库版本不正确:(debug下对应的库为xxxd.lib,release的为xxx.lib)
据说imread()不能同时添加带d和不带d的依赖项,而要单独添加,根据Debug和Release模式不同相应配置不同的依赖项,我用的opencv3.2+debug模式下,所以添加opencv_world320d.lib,如图:
这里写图片描述

(3)opencv3版本,调试模式要在x64下,而不能使用x86
http://blog.csdn.net/zmdsjtu/article/details/54694793

(4)有人提出用下面方法解决,但是我没用过,也一并写出来:
改属性->C/C++->代码生成->运行库
如果是debug版,将运行时库设置为:多线程调试(/ MTD)
如果是release版,将运行时库设置为:多线程(/ MT)
这里写图片描述

PS:最后说一下我的情况,真的感觉要被自己蠢哭的那种,由于文件夹下图片没有显示后缀名,我把图片命名为”5.jpg”,所以一直读取失败,实际上我的图片类型是tif格式的,所以正确的路径应该写“5.jpg.tif”,就这么一个小问题搞了半天!最后祝大家opencv安装顺利!遇到问题不要着急,慢慢分析排除总会解决的~

参考链接:
http://blog.csdn.net/lh1162810317/article/details/23792247
http://blog.csdn.net/liups/article/details/32911791
http://163n.blog.163.com/blog/static/56035552201511782022800/

猜你喜欢

转载自blog.csdn.net/im6520/article/details/75103651