python用opencv打开图片_OpenCV 使用imread()函数读取图片的六种正确姿势

本文介绍了使用OpenCV的imread()函数读取图片时的六种正确方法,包括双右斜线、双左斜线、单左斜线、混合斜线、相对路径和命令行参数法。通过实例代码详细讲解了每种方式的使用,并强调了imread()函数不支持单右斜线路径。
摘要由CSDN通过智能技术生成

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

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

如图:

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

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

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

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

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

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

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

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

#include

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()读取图片内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值