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

 更新时间:2020年07月09日 11:02:01   作者:冰不语  
这篇文章主要介绍了OpenCV 使用imread()函数读取图片的六种正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

如图:

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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 --双左斜线法
    //-- 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()读取图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

(0)

相关推荐

  • Python进阶——OpenCV之Core Operations

    文章目录 图像基本操作 访问并修改像素值 访问图像的属性 设置图像区域 图像分割与合并 画图像边框 图像的数学操作 图像叠加 图像融合 图像位操作 Python OpenCV代码检测与速度优化 时隔一 ...

  • 使用Matlab处理图像(一)

    通过程序能够看到图像是进行视觉学习的第一步,今天小白就给大家如何读取图片并进行简单的操作. 01 - Matlab的使用 小白在大一的时候接触过Matlab,怀着激动的心打开软件,然而...我并不会使 ...

  • 【AI基础】OpenCV,PIL,Skimage你pick谁

    汤兴旺 就读于吉林大学汽车工程学院,计算机视觉爱好者,言有三弟子 作者 | 汤兴旺 编辑 | 汤兴旺/言有三 如何对图像进行处理是深度学习图像处理的基础,我们常常需要对图像进行读取.保存.缩放.裁剪. ...

  • 使用OpenCV实现图像覆盖

    重磅干货,第一时间送达 每张图像都包括RGB三个通道,分别代表红色.绿色和蓝色,使用它们来定义图像中任意一点的像素值,红绿蓝的值在0-255之间. 例如:一个像素值[255,0,0]代表全部为红色,像 ...

  • 使用openCV与C++求图片特征值及特征向量并进行图片处理

    利用openCV求图片特征值及特征向量 1.运用openCV与c++所涉及的头文件 #include<iostream> #include<cstring> #include& ...

  • OpenCV-Python学习教程.2

    如果你用Linux得设备,可能会用到这里来看有没有设备被安全挂载.因为没有一个图形化的页面来方便的查看. 子Linux不是太好使 # 获取视频帧的宽w = fcap.get(cv2.CAP_PROP_ ...

  • (11条消息) Opencv 读取灰度图像会识别为3通道问题

    最近初接触图像cv,一切都是从零开始因此遇到了许多问题,故在此记录遇到的问题方便提醒自己也方便后来人不再困惑. 场景: 我们都知道灰度图或者红外图都是单通道图片,而彩色图片是三通道图片.但是当我们用i ...

  • 【从零学习OpenCV 4】图像读取函数imread

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • OpenCV探索之路(五):图片缩放和图像金字塔

    对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_AREA来插值:若要放大图像,推荐使用 ...

  • opencv3错误集锦(四)——Rect函数参数引发的异常中断

    opencv3错误集锦(四)——Rect函数参数引发的异常中断

  • OpenCV基础知识入门

    本文旨在让你快速入门opencv. OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用.该库是一个跨平台的开源库,是免费使 ...