OpenCV imread读取图片失败的问题及解决

 更新时间:2022年11月11日 17:02  点击:379 作者:xiexieken

OpenCV imread读取图片失败问题

使用一下代码读取一张图片失败(不管是绝对路径还是相对路径,都失败),工程运行都没问题,就是图片读取失败。

    // 读入一张图片(游戏原画)  
    Mat img=imread("hehe.jpg");  
	if(!img.data) //判断图片调入是否成功
         return -1; //调入图片失败则退出
    // 创建一个名为 "游戏原画"窗口  
    cvNamedWindow("enen");  
    // 在窗口中显示游戏原画  
    imshow("enen",img);  
    // 等待6000 ms后窗口自动关闭  
    waitKey(6000);  

以上的问题是因为工程的配置为Debug模式

但在配置“链接器->附加依赖项”时,把*.lib库一起加入其中,并且将*.lib库加在了*d.lib库之前,这样就导致了优先使用*.lib。解决办法是把附加依赖项中open的*.lib全删了。

注意:

一般在配置工程时,Debug工程的“链接器->附加依赖项”一般只加*d.lib库;而Release工程的“链接器->附加依赖项”一般只加*.lib库,这样就可以避免以上问题。

OpenCV读图失败的三种情况,其中一种情况罕见

初学OpenCV,对于读图片失败一共碰到过三种情况,第一种情况似乎没什么人遇到过,但我遇到了这个坑,写在最前面希望给后续的朋友一定帮助。

一、Windows粘贴可能存在非法字符

本人在使用imread函数进行读图片时,由于偷懒,直接把图片属性页(图1)里的红色方框路径复制到程序中,加上反斜杠后跑程序会崩溃。此时是因为这样复制的路径可能存在非法字符,但是在IDE中又不显示,导致路径看起来是正确的,但实际上是错误的。可以尝试手动输入地址,也许问题就能解决。

图一  图片属性窗口

二、路径斜杠的问题

由于“\”在编程语言中是充当转义符号存在的,故图片路径中的“\”会被认为是转义符而并不是我们想象中的路径分割符,此时需要用“\\”来实现,第一个“\”代表转义,这样第二个“\”就会被识别为分隔符。如果不愿使用反斜杠,可以将反斜杠全部换为斜杠“/”输入。例如:

//使用反斜杠
imread("C:\\Users\\1.jpg")
imread("C:\Users\1.jpg")  //错误的方式
//使用斜杠
imread("C:/Users/1.jpg")

三、附加依赖项的原因

在配置OPENCV环境的时候,如果将附加依赖项中的文件全部添加进去可能会存在一些错误,读图失败就是其中之一。

我的配置文件打开附件依赖项可以看到添加的是opencv_world430.lib,数字代表的是版本号,和我的不一样没有任何影响, 这个代表依赖项是在程序选择release版本时使用的,若你的程序选择的是debug版本,则应该选用opencv_world430d.lib。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。

原文出处:https://blog.csdn.net/xzq413520903/article/details/87932637

[!--infotagslink--]

相关文章

  • python opencv 画外接矩形框的完整代码

    这篇文章主要介绍了python-opencv-画外接矩形框的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-04
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • python opencv通过4坐标剪裁图片

    图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
  • OpenCV如何去除图片中的阴影的实现

    这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-29
  • 解决使用OpenCV中的imread()内存报错问题

    这篇文章主要介绍了解决使用OpenCV中的imread()内存报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • python OpenCV学习笔记

    这篇文章主要介绍了python OpenCV的相关资料,帮助大家更好的理解和学习使用python的opencv,感兴趣的朋友可以了解下...2021-03-31
  • 使用OpenCV去除面积较小的连通域

    这篇文章主要介绍了使用OpenCV去除面积较小的连通域,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-05
  • 详解pycharm的python包opencv(cv2)无代码提示问题的解决

    这篇文章主要介绍了详解pycharm的python包opencv(cv2)无代码提示问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-29
  • 在C#中使用OpenCV(使用OpenCVSharp)的实现

    这篇文章主要介绍了在C#中使用OpenCV(使用OpenCVSharp)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-15
  • C++ opencv实现车道线识别

    这篇文章主要为大家详细介绍了C++ opencv实现车道线识别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-20
  • Opencv LBPH人脸识别算法详解

    这篇文章主要为大家详细介绍了Opencv LBPH人脸识别算法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
  • 详解opencv中画圆circle函数和椭圆ellipse函数

    这篇文章主要介绍了opencv中画圆circle函数和椭圆ellipse函数,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-09
  • python中的opencv和PIL(pillow)转化操作

    这篇文章主要介绍了python中的opencv和PIL(pillow)转化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • python基于opencv检测程序运行效率

    这篇文章主要介绍了python基于opencv检测程序运行效率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-09
  • 浅谈OpenCV中的新函数connectedComponentsWithStats用法

    这篇文章主要介绍了浅谈OpenCV中的新函数connectedComponentsWithStats用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-05
  • Opencv实现绿幕视频背景替换功能

    这篇文章主要为大家详细介绍了Opencv实现绿幕视频背景替换功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
  • python基于OpenCV模板匹配识别图片中的数字

    这篇文章主要介绍了python基于OpenCV模板匹配识别图片中的数字,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-03-31
  • 使用opencv识别图像红色区域,并输出红色区域中心点坐标

    这篇文章主要介绍了使用opencv识别图像红色区域,并输出红色区域中心点坐标,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-03
  • Python编程OpenCV和Numpy图像处理库实现图片去水印

    这篇文章主要介绍了Python编程中如何实现图片去水印本文采用了OpenCV和Numpy的图像处理的方法来实现,文中附含详细示例代码,有需要的朋友可以借鉴参考下...2021-09-26
  • Opencv python 图片生成视频的方法示例

    这篇文章主要介绍了Opencv python 图片生成视频的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-18