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之关于类的初步认识
Oct 11 Python
python实现斐波那契数列的方法示例
Jan 12 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
Python中文件的读取和写入操作
Apr 27 Python
目前最全的python的就业方向
Jun 05 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
Python中super函数用法实例分析
Mar 18 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
python语言中有算法吗
Jun 16 Python
python解压zip包中文乱码解决方法
Nov 27 Python
python中__slots__节约内存的具体做法
Jul 04 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在文件指定行中写入代码的方法
2012/05/23 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
javascript中的事件代理初探
2014/03/08 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
python概率计算器实例分析
2015/03/25 Python
Python中的各种装饰器详解
2015/04/11 Python
Django中的ajax请求
2018/10/19 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
Django中URL的参数传递的实现
2019/08/04 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
护士毕业自我鉴定
2014/02/07 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
2014年度个人总结范文
2015/03/09 职场文书
面试通知短信
2015/04/20 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS