python imread函数_opencv学习之读取图像-imread函数
序
想要完整全面地学习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函数相关推荐
- python imshow函数_opencv学习之显示图像-imshow函数
序 上一篇opencv学习之读取图像-imread函数介绍完opencv读取图片函数imread,这次来介绍与它对应的图像显示函数imshow. imshow函数 imshow函数功能 imshow的 ...
- c++imread 函数_OpenCV学习笔记与源码分析: imread( )函数
引言 imread()函数在opencv使用比较. imread()函数 声明: Mat imread(const string& filename, int flags); 这很标准的写法, ...
- python waitkey(0)_opencv学习之等待按键事件-waitKey函数
文章来源: 序 waitKey函数属于opencv函数里既常用又非常基础的函数,无论是刚开始学习opencv,还是使用opencv进行开发调试,都可以看到waitKey函数的身影.然而最基础的东西可能 ...
- opencv python 高斯滤波_OpenCV 学习:8 高斯滤波GaussianBlur
1 什么是高斯滤波? 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程.[1]通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他 ...
- OpenCV使用教程-读取图像imread使用说明
1.方法说明: import cv2 as cv img1 =cv.imread(filename[, flags]) 参数 说明 filename 图片路径地址 flags 读取图片方式 2.目前支 ...
- 没有ggplot这个函数_JavaScript学习笔记(四)——函数基础
函数基础 我们代码里面所说的函数和我们上学的时候学习的什么三角函数.二次函数之类的不是一个东西 函数的概念 对于 js 来说,函数就是把任意一段代码放在一个 盒子 里面 在我想要让这段代码执行的时候, ...
- 没有varselect这个函数_JavaScript学习笔记(四)-- 函数基础
函数基础 我们代码里面所说的函数和我们上学的时候学习的什么三角函数.二次函数之类的不是一个东西 函数的概念 对于 js 来说,函数就是把任意一段代码放在一个 盒子 里面 在我想要让这段代码执行的时候, ...
- java 图像梯度检测_opencv学习笔记(六)---图像梯度
图像梯度的算法有很多方法:sabel算子,scharr算子,laplacian算子,sanny边缘检测(下个随笔)... 下面是我的一些理解: sabel算子: sobel算子主要用于获得数字图像的一 ...
- opencv读取图像的函数
显示一幅图: 主要是运用功能:imread namedWindow imshow imread:从字面意思我们就可以看懂,用来读取图片的: namedWindow:显然,我们也可以看到这是用来命名窗口 ...
最新文章
- 机器学习问题的十个实例【转】
- 通过几个Hello World感受.NET Core全新的开发体验
- Everything(速度快的文件搜索软件) 1.4.1.801b 汉化绿色版
- android 使用adb远程调试
- jzoj4025-找回密码【后缀自动机】
- Bootstrap Magic – 轻松创建自己的 Bootstrap 主题
- VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
- 抖音何以为“抖音”?少不了A/B测试的功劳
- android 长截屏实现,Android实现截屏与截长图功能
- Louvain 算法的核心思路以及数据结构(最完善版)
- 【最新】电脑常用装机软件组合 装机必备
- SpringMVC表单标签简介
- Java常用jar包用途
- 伦敦大学计算机研究生雅思要求,伦敦TOP10大学的雅思入学要求来了!
- 【C系列】How to printf “unsigned long” in C?
- 分布式ID之生成策略
- 姜小白的Python日记Day5 字符串与字典
- 生成自己的浏览器证书
- JAVA 实现《五子棋》游戏|CSDN创作打卡
- [硬件]电路-TTL