OpenCV3和OpenCV2大同小异,图片的读取,通过函数cv::imread()来实现的;显示通过函数cv::imshow()来实现;而保存则通过cv::imwrite()来实现。

1、图片的读取,通过函数cv::imread()读取。

第一个参数为图片文件的相对路径或绝对路径(注意:路径一定要正确,同时也要确保文件的格式正确);

第二个参数为flag,cv::imread()支持的flag有:

cv::IMREAD_COLOR(总是读取到三通道数组中)、

cv::IMREAD_GRAYSCALE(读取到单通道数组中)、

cv::IMREAD_ANYCOLOR(读取的通道由具体的文件决定,最高3通道)、

cv::IMREAD_ANYDEPTH(允许读取超过深度超过8位的图像)、

cv::IMREAD_UNCHANGED(完全按照文件的原有形式进行读取)、

默认情况下读取3通道。

cv::Mat cv::imread(const string& filename, // Input filenameint flags = cv::IMREAD_COLOR // Flags set how to interpret file);

2、图片的显示使用的是cv::imshow()函数。

第一个参数为窗口的名称,第二个参数为要显示的图片文件,也可以通过函数cv::namedWindow()先创建一个窗口供cv::imshow()使用。

void cv::imshow(const string& name, // Handle used to identify windowcv::InputArray image // Image to display in window
);

3、图片的保存,通过cv::imwrite()函数来实现。其中,第一个参数为保存目标文件的路径名称,图片的类型通过路径的后缀进行标识,opencv3支持写图片的类型有:

“.jpg”或“.jpeg”:基线JPEG;8位,单通道或3通道输入。

“.jp2”:JPEG2000;8位或16位,单通道或3通道输入。

“.tiff”或“tif”:TIFF;8位或16位,单通道、3通道或4通道输入。

“.png”:PNG;8位或16位,单通道、3通道或4通道输入。

“.bmp”:BMP;8位,单通道、3通道或4通道输入。

“.ppm”或“pgm”:NetPBM;8位,单通道(PGM)或3通道(PPM)。

第二个参数,是图像数据输入,注意与写图片的类型匹配。

第三个参数,可选,用于参数化的类型,opencv3中支持的params如下:

cv::IMWRITE_JPG_QUALITY:表示JPEG的质量,取值范围0-100,默认值为95;

cv::IMWRITE_PNG_COMPRESSION:PNG的压缩率(值越高压缩率越高),取值范围0-9,默认值为3;

cv::IMWRITE_PXM_BINARY:使用二进制形式写PPM、PGM、PBM文件,取值0或1,默认值1;

bool cv::imwrite(const string& filename, // Input filenamecv::InputArray image, // Image to write to fileconst vector<int>& params = vector<int>() // (Optional) for parameterized fmts);

最后,为了显示保存的效果,使用了函数cvtColor将原图从BGR彩色空间变换为灰度空间中的图形(第三个变量表为flag,表示转换前后的形式)。

从上看我们可以看出,OpenCV2系列中的flag的风格为CV_XXXX,而在OpenCV3中flag的定义风格均变为cv::XXXX)。

实现的具体代码如下:

#include <opencv2/opencv.hpp>int main()
{cv::Mat image, image_gray;image = cv::imread("lenna.jpg", cv::IMREAD_COLOR);cv::imshow("lenna", image);cv::cvtColor(image, image_gray, cv::COLOR_BGR2GRAY);cv::imwrite("lenna_gray.jpg", image_gray);cv::waitKey(0);return 0;
}

结果:

显示结果

写结果

【OpenCV3】图像的读取、显示与保存相关推荐

  1. OpenCV-Python学习笔记(一):图像读入、显示、保存,BGR模式转RGB模式

    使用OpenCV-Python实现图像读入.显示与保存: # -*- coding: utf-8 -*-import cv2 from matplotlib import pyplot as plt# ...

  2. OpenCV 图像/视频 读取 显示

    1.图像操作 cv.imread() 使用cv.imread()函数读取图像.图像应该在工作目录或图像的完整路径应给出. 第二个参数是一个标志,它指定了读取图像的方式. cv.IMREAD_COLOR ...

  3. 机器人视觉——图像读入、显示与保存

    图片处理 1. 读入图像 2. 显示图像 3. 保存图像 图像是由像素构成的 图像分类: 二值图像 灰度图像 彩色图像 像素处理 1.读取像素 2.修改像素值

  4. python图像复制、显示、保存

    图像就是一个矩阵,在OpenCV for Python中,图像就是NumPy中的数组! 如果读取图像首先要导入OpenCV包,方法为: import cv2 读取并显示图像 在Python中不需要声明 ...

  5. 【python图像处理】图像的读取、显示与保存

    python作为机器学习和图像处理的利器,收到越来越多的推崇,特别是在图像处理领域,越来越多的研究和开发开始转向使用python语言,下面就介绍python图像处理中最基本的操作,即图像的读取显示与保 ...

  6. Python-OpenCV 笔记1 -- 图像与视频的读取、显示、保存

    Python-OpenCV 笔记1 – 图像与视频的读取.显示.保存 一.图片的读取.显示.保存 1.图片读取 原型: imread (filename, flags=None) 参数: filena ...

  7. [转载] OpenCV-Python 图像处理(二):图像的读取、显示与保存

    参考链接: Python OpenCV 基础 2 : imwrite 保存图像 说明: 本系列主要是学习OpenCV-Python文档的个人笔记.很少有理论的叙述,都是函数名.参数描述.作用.应用场景 ...

  8. OpenCV 2.图像入门:读取、显示、保存

    OpenCV 中文官方文档:http://woshicver.com/ 图像入门:读取.显示.保存 cv.imread(),cv.imshow(),cv.imwrite() cv.imread()函数 ...

  9. C#使用EmguCV库(图像读取、显示、保存)(二)

    使用C#+EmguCV处理图像入门(图像读取_显示_保存)二 上个随笔已经介绍EmguCV的一些常用库和程序安装以及环境变量的配置,这次写的是如何使用这个类库对图像进行操作. EmguCV图像处理系统 ...

  10. C++ openCV 图像的读取、显示、保存、加权融合、改变对比度、修改色域

    文章目录 图像的读取.显示.保存 图像的读取 图像的显示 图像的保存 图像的属性修改 图像的色域修改 图像的对比度.数据类型修改 两张图像的加权融合 图像的读取.显示.保存 使用的命名空间 #prag ...

最新文章

  1. python中PIL.Image和OpenCV图像格式相互转换
  2. JavaScript拖拽
  3. CF1110E-Magic Stones【结论题,差分】
  4. 优先队列——斐波那契堆(without source code)
  5. Java恶意序列化背后的历史和动机
  6. 深度学习基本概念笔记
  7. 微信JS-SDK选择相册或拍照并上传PHP实现
  8. mysql双向同步读写_mysql数据双向同步
  9. 重磅汇总!2015-2019学硕国家线走势情况!
  10. lssvm回归 matlab,lssvm回归预测的程序运行不了 求高手修改指点
  11. 计算机如何建筑材料结合所学知识,《技术与设计2》第三、四单元检测试卷
  12. 【Go】高性能的简繁体转换
  13. 标准软件开发过程 文档
  14. 2022 年移动应用开发终极指南
  15. Java 常见异常以及处理方式
  16. VASP_Si的能带结构计算_步骤整理
  17. html怎么引用网页链接,浅谈网页中各种链接引用方法
  18. AV1代码学习:encoder_encode函数
  19. WPS中如何将多个文件在不同窗口中打开
  20. 电子制作——一个电调的诞生之路

热门文章

  1. android camera 检测,检测Android Camera文件夹
  2. 兰州大学计算机考研专硕学费,2018年兰州大学在职硕士研究生学费标准
  3. 数据结构与算法笔记(十六)—— 二叉搜索树
  4. Compliments 计算机术语,2016年9月统考计算机复习题.doc
  5. 超市收银程序_超市收银系统案例|千平超市再开2家,星耀助力门店年关创收...
  6. 父爱动画代码python_pygame用blit()实现动画效果的示例代码
  7. matlab simulink 求解连续微分系统 混沌系统
  8. 数据结构实验之栈与队列五:下一较大值(一)
  9. UML序列图总结(Loop、Opt、Par和Alt)
  10. [Google Guava] 7-原生类型