OpenCV 使用imread()函数读取图片的六种正确姿势


Posted in Python onJuly 09, 2020

经常看到有人在网上询问关于imread()函数读取图片失败的问题。今天心血来潮,经过实验,总结出imread()调用的四种正确姿势。

通常我要获取一张图片的绝对路径是这样做的:在图片上右键——属性——安全——对象名称。然后复制对象名称就得到了图片的绝对路径。

如图:

OpenCV 使用imread()函数读取图片的六种正确姿势

然而这样得到的路径直接复制粘贴到vs里面会直接报错,如下:

OpenCV 使用imread()函数读取图片的六种正确姿势

可以看出我们获取的绝对路径的表示方法是单右斜线形式的。显然opencv的imread()不支持这种方式。但是!!!经过实验发现imread()除了不支持单右斜线形式,其他斜线形式都支持!!!比如双右斜线形式、双左斜线形式、单左斜线形式、前述三种斜线混合型式都是支持的!!我想知道为什么??

看图,下面的六种方式任何一种都是支持的,都可以成功读取并显示图片。

OpenCV 使用imread()函数读取图片的六种正确姿势

我个人经常用的方法是第5种,相对路径法。只需要把图像文件放在工程文件夹下和.cpp文件放在一起就行了,读取的时候就可以直接用名字读取,如imread("miao.jpg");

最后一种命令行参数法是源码中比较常见的。设置方法是:

工程——属性——配置属性——调试——命令行参数,然后设置就行了。如图:

OpenCV 使用imread()函数读取图片的六种正确姿势

设置之后miao.jpg就是argv[1],2.jpg就是argv[2]。

这次的完整代码如下(路径因人而异的):

#include<opencv2\opencv.hpp>
 
using namespace cv;
 
int main(int argc,char* argv[])
{
	Mat img;
 
	//-- 1 --双右斜线法
	//string imgpath = "C:\\Users\\bingbuyu\\Pictures\\photo\\miao1.jpg";
	//-- 2 --双左斜线法
	//string imgpath = "C://Users//bingbuyu//Pictures//photo//miao1.jpg";
	//-- 3 --单左斜线法
	//string imgpath = "C:/Users/bingbuyu/Pictures/photo/miao1.jpg";
	//-- 4 --以上三种混合法
	//string imgpath = "C:/Users//bingbuyu\\Pictures//photo//miao1.jpg";
	//-- 5 --相对路径法
	//string imgpath = "miao.jpg";
	//-- 6 --命令行参数法
	string imgpath = argv[1];
 
	img = imread(imgpath, 1);
	imshow("img", img);
 
	waitKey(0);
	return 0;
}

以上六种的运行结果,还是这只喵:

OpenCV 使用imread()函数读取图片的六种正确姿势 

到此这篇关于OpenCV 使用imread()函数读取图片的六种正确姿势的文章就介绍到这了,更多相关OpenCV imread()读取图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python中动态获取对象的属性和方法的教程
Apr 09 Python
在Python的web框架中配置app的教程
Apr 30 Python
Python中return语句用法实例分析
Aug 04 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
python 数据分析实现长宽格式的转换
May 18 Python
教你利用python实现企业微信发送消息
May 23 Python
django模型类中,null=True,blank=True用法说明
Jul 09 #Python
Python pip安装第三方库实现过程解析
Jul 09 #Python
详细分析Python可变对象和不可变对象
Jul 09 #Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 #Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 #Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 #Python
Python selenium模块实现定位过程解析
Jul 09 #Python
You might like
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
python实现堆栈与队列的方法
2015/01/15 Python
简单介绍Ruby中的CGI编程
2015/04/10 Python
python 排序算法总结及实例详解
2016/09/28 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
财务总监管理岗位职责
2014/03/08 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
应届生找工作求职信
2014/06/24 职场文书
中文专业自荐书
2014/06/29 职场文书
音乐学专业求职信
2014/07/22 职场文书
兽医医药专业求职信
2014/07/27 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书