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

作者:xiexieken 时间:2021-10-20 06:44:00 

OpenCV imread读取图片失败问题

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

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

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

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

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

注意:

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

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

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

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

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

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

图一  图片属性窗口

二、路径斜杠的问题

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

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

三、附加依赖项的原因

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

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

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

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

来源:https://blog.csdn.net/xzq413520903/article/details/87932637

标签:OpenCV,imread,读取图片
0
投稿

猜你喜欢

  • 如何使用ASP来读写注册表

    2007-09-20 13:08:00
  • python通过nmap扫描在线设备并尝试AAA登录(实例代码)

    2021-08-06 23:23:42
  • 基于python实现文件加密功能

    2022-02-02 20:28:57
  • SQL Server 2005 SSIS技巧:动态目的文件名

    2008-12-05 15:47:00
  • W3C 发布 XMLHttpRequest 工作草图

    2008-04-28 13:00:00
  • 对Python 文件夹遍历和文件查找的实例讲解

    2021-11-05 22:29:25
  • 数据库应用经验:如何简单安装MySQL数据库

    2009-01-04 12:58:00
  • 情感的容器 被寄托了的QQ2010视觉设计

    2010-02-03 14:51:00
  • Python中的类与类型示例详解

    2023-08-12 12:21:42
  • PHP const定义常量及global定义全局常量实例解析

    2023-11-17 07:24:57
  • asp实现通过session来统计在线人数的方法

    2007-08-13 12:56:00
  • MySQL5创建存储过程实例

    2010-06-13 12:49:00
  • 使用Canal实现PHP应用程序与MySQL数据库的实时数据同步

    2023-05-25 01:54:39
  • Python echarts实现数据可视化实例详解

    2022-02-22 03:54:09
  • 在Python程序中进行文件读取和写入操作的教程

    2023-05-22 10:31:56
  • Python保存数据至MySQL时中文问题

    2011-02-23 12:06:00
  • django中forms组件的使用与注意

    2021-03-11 00:14:04
  • 彻底搞懂python 迭代器和生成器

    2021-09-14 05:00:26
  • numpy工程实践之np.savetxt()存储数据

    2023-06-19 07:33:11
  • Go语言二进制文件的读写操作

    2023-06-23 09:40:08
  • asp之家 网络编程 m.aspxhome.com