想要完整全面地学习opencv,仅凭阅读samples的示例源码是不够的。毕竟opencv是一个拥有非常多函数的程序库,所以在每学习一个函数时,芒果觉得有必要记录下来,分享给有需要的同学。于是,就有了这一篇的开始,以后的这个就归为opencv函数学习的系列了,篇幅应该都会比较短。

imread函数

imread函数作用

imread函数的作用非常简单,从函数的名称也可以看出来,imread为image read的缩写,即图像读取的意思,。那么imread函数的作用就很明显了,负责读取图像。其实学过matlab的同学就会知道,matlab中也有一个读取图像的函数也命名为imread,这是opencv借鉴了matlab而命名的,因为在opencv1.x时代,加载图像的函数并不叫imread,二是由cvLoadImage函数负责。

imread函数原型

话不多说,先了解imread函数的原型,从opencv的最新document可以查阅到imread原型为

imread c++原型

#include

Mat cv::imread(const String & filename,

int flags = IMREAD_COLOR

)

imread python原型

Python:

retval=cv.imread(filename[, flags])

可以看到,imread函数原型非常简单,可以总结为三点

返回值,Mat 类型, 即返回读取的图像,读取图像失败时返回一个空的矩阵对象(Mat::data == NULL)

参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀)

参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什么颜色格式读取图片有关

参数1 补充:

imread函数支持读取的图像格式有

Windows bitmaps - *.bmp, *.dib (always supported)

JPEG files - *.jpeg, *.jpg, *.jpe (see the Note section)

JPEG 2000 files - *.jp2 (see the Note section)

Portable Network Graphics - *.png (see the Note section)

WebP - *.webp (see the Note section)

Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm (always supported)

PFM files - *.pfm (see the Note section)

Sun rasters - *.sr, *.ras (always supported)

TIFF files - *.tiff, *.tif (see the Note section)

OpenEXR Image files - *.exr (see the Note section)

Radiance HDR - *.hdr, *.pic (always supported)

Raster and Vector geospatial data supported by GDAL (see the Note section)

Note

参数2 补充:

这些flags值被定义在enum cv::ImreadModes枚举类里面

c++定义

python定义

说明

IMREAD_UNCHANGED

Python: cv.IMREAD_UNCHANGED

如果设置,则按原样返回加载的图像(使用Alpha通道,否则会被裁剪)

IMREAD_GRAYSCALE

Python: cv.IMREAD_GRAYSCALE

如果设置,则始终将图像转换为单通道灰度图像(编解码器内部转换)。

IMREAD_COLOR

Python: cv.IMREAD_COLOR

如果设置,请始终将图像转换为3通道BGR彩色图像。

IMREAD_ANYDEPTH

Python: cv.IMREAD_ANYDEPTH

如果设置,则在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位。

IMREAD_ANYCOLOR

Python: cv.IMREAD_ANYCOLOR

如果设置,则以任何可能的颜色格式读取图像。

IMREAD_LOAD_GDAL

Python: cv.IMREAD_LOAD_GDAL

如果设置,使用gdal驱动程序加载图像

IMREAD_REDUCED_GRAYSCALE_2

Python: cv.IMREAD_REDUCED_GRAYSCALE_2

如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/2。

IMREAD_REDUCED_COLOR_2

Python: cv.IMREAD_REDUCED_COLOR_2

如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/2。

IMREAD_REDUCED_GRAYSCALE_4

Python: cv.IMREAD_REDUCED_GRAYSCALE_4

如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/4

IMREAD_REDUCED_COLOR_4

Python: cv.IMREAD_REDUCED_COLOR_4

如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/4

IMREAD_REDUCED_GRAYSCALE_8

Python: cv.IMREAD_REDUCED_GRAYSCALE_8

如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/8。

IMREAD_REDUCED_COLOR_8

Python: cv.IMREAD_REDUCED_COLOR_8

如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/8。

IMREAD_IGNORE_ORIENTATION

Python: cv.IMREAD_IGNORE_ORIENTATION

如果设置,请不要根据EXIF的方向标志旋转图像。

imread函数使用示例

#include

#include

using namespace cv;

using namespace std;

int main()

{

//read the image

Mat image = imread("./clock.jpg");

if (image.data != NULL)

{

//show the image

imshow("clock", image);

waitKey(0);

}

else

{

cout << "can't openc the file!" << endl;

getchar();

}

return 0;

}

尾巴

opencv的官方文档document其实是一份非常好的资料,关于opencv的几乎都可以在上面查阅得到,不过缺点就是文档为全英文的,这个需要自己克服一下。

python imread函数_opencv学习之读取图像-imread函数相关推荐

  1. python imshow函数_opencv学习之显示图像-imshow函数

    序 上一篇opencv学习之读取图像-imread函数介绍完opencv读取图片函数imread,这次来介绍与它对应的图像显示函数imshow. imshow函数 imshow函数功能 imshow的 ...

  2. c++imread 函数_OpenCV学习笔记与源码分析: imread( )函数

    引言 imread()函数在opencv使用比较. imread()函数 声明: Mat imread(const string& filename, int flags); 这很标准的写法, ...

  3. python waitkey(0)_opencv学习之等待按键事件-waitKey函数

    文章来源: 序 waitKey函数属于opencv函数里既常用又非常基础的函数,无论是刚开始学习opencv,还是使用opencv进行开发调试,都可以看到waitKey函数的身影.然而最基础的东西可能 ...

  4. opencv python 高斯滤波_OpenCV 学习:8 高斯滤波GaussianBlur

    1 什么是高斯滤波? 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程.[1]通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他 ...

  5. OpenCV使用教程-读取图像imread使用说明

    1.方法说明: import cv2 as cv img1 =cv.imread(filename[, flags]) 参数 说明 filename 图片路径地址 flags 读取图片方式 2.目前支 ...

  6. 没有ggplot这个函数_JavaScript学习笔记(四)——函数基础

    函数基础 我们代码里面所说的函数和我们上学的时候学习的什么三角函数.二次函数之类的不是一个东西 函数的概念 对于 js 来说,函数就是把任意一段代码放在一个 盒子 里面 在我想要让这段代码执行的时候, ...

  7. 没有varselect这个函数_JavaScript学习笔记(四)-- 函数基础

    函数基础 我们代码里面所说的函数和我们上学的时候学习的什么三角函数.二次函数之类的不是一个东西 函数的概念 对于 js 来说,函数就是把任意一段代码放在一个 盒子 里面 在我想要让这段代码执行的时候, ...

  8. java 图像梯度检测_opencv学习笔记(六)---图像梯度

    图像梯度的算法有很多方法:sabel算子,scharr算子,laplacian算子,sanny边缘检测(下个随笔)... 下面是我的一些理解: sabel算子: sobel算子主要用于获得数字图像的一 ...

  9. opencv读取图像的函数

    显示一幅图: 主要是运用功能:imread namedWindow imshow imread:从字面意思我们就可以看懂,用来读取图片的: namedWindow:显然,我们也可以看到这是用来命名窗口 ...

最新文章

  1. 机器学习问题的十个实例【转】
  2. 通过几个Hello World感受.NET Core全新的开发体验
  3. Everything(速度快的文件搜索软件) 1.4.1.801b 汉化绿色版
  4. android 使用adb远程调试
  5. jzoj4025-找回密码【后缀自动机】
  6. Bootstrap Magic – 轻松创建自己的 Bootstrap 主题
  7. VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
  8. 抖音何以为“抖音”?少不了A/B测试的功劳
  9. android 长截屏实现,Android实现截屏与截长图功能
  10. Louvain 算法的核心思路以及数据结构(最完善版)
  11. 【最新】电脑常用装机软件组合 装机必备
  12. SpringMVC表单标签简介
  13. Java常用jar包用途
  14. 伦敦大学计算机研究生雅思要求,伦敦TOP10大学的雅思入学要求来了!
  15. 【C系列】How to printf “unsigned long” in C?
  16. 分布式ID之生成策略
  17. 姜小白的Python日记Day5 字符串与字典
  18. 生成自己的浏览器证书
  19. JAVA 实现《五子棋》游戏|CSDN创作打卡
  20. [硬件]电路-TTL

热门文章

  1. 绘画功底对3D建模水平有影响吗
  2. java基于springboot青少年体质健康数据管理与分析系统
  3. ChatGPT不仅仅只是聊天机器人
  4. Xmodem 协议介绍及应用(基于 ESP-IDF)
  5. IntelliJ Idea 代码编辑区域的字体设置
  6. 潭州教育-Python学习笔记@基本数据类型作业2
  7. 《小白韭菜要理财》总览
  8. 弹性布局flex知识点和常用点
  9. 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因以及解决方法
  10. H - 憨憨的锤子(sdut 6.21重现赛)(最长上升子序列+思维)