目录

1 图片读取

2 图片保存


1 图片读取

在OpenCV中,加载图片采用imread()函数。

函数详细说明在:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation

Python: cv2.imread(filename[, flags])

函数功能:

imread 功能是加载图像文件成为一个 Mat 对象。

imread支持的文件类型有:

  • Windows bitmaps - *.bmp, *.dib (always supported)
  • JPEG files - *.jpeg, *.jpg, *.jpe (see the Notes section)
  • JPEG 2000 files - *.jp2 (see the Notes section)
  • Portable Network Graphics - *.png (see the Notes section)
  • Portable image format - *.pbm, *.pgm, *.ppm (always supported)
  • Sun rasters - *.sr, *.ras (always supported)
  • TIFF files - *.tiff, *.tif (see the Notes section)

参数说明:

第一个参数表示图像文件名称;

第二个参数表示加载的图像是什么类型,支持常见的三个参数值。可以直接使用数字来代替(1,0,-1),默认值为IMREAD_UNCHANDED.

  • IMREAD_UNCHANDED(<0) 表示加载原图,不做任何改变 , 包括alpha通道,可以直接写-1
  • IMREAD_GRAYSCALE(0) 表示把原图作为灰度图像加载进来。
  • IMREAD_COLOR(>0) 表示默认参数,读入一副彩色图片,忽略alpha通道

接下来,我们分别用三个Flag加载图片:

import cv2 img = cv2.imread("./1.jpeg")# 打印图像类型
print(type(img))
print(img)cv2.imshow("image",img)cv2.waitKey(0)cv2.destroyAllWindows()

按任意键退出弹出的画面。

原图:

IMREAD_UNCHANDED图如下:

<class 'numpy.ndarray'>
[[[248 201 140][248 201 140][248 201 140]...[244 222 204][244 222 204][244 222 204]][[248 201 140][248 201 140][248 201 140]
......

IMREAD_GRAYSCALE图和打印如下:

<class 'numpy.ndarray'>
[[188 188 188 ... 219 219 219][188 188 188 ... 219 219 219][188 188 188 ... 218 218 218]...[ 41  34  25 ... 121 121 123][ 55  49  41 ... 136 134 135][ 77  70  59 ... 125 126 129]]

IMREAD_COLOR图和打印如下:

<class 'numpy.ndarray'>
[[[248 201 140][248 201 140][248 201 140]...[244 222 204][244 222 204][244 222 204]][[248 201 140][248 201 140][248 201 140]...

2 图片保存

图片保存使用的是imwrite()或是SaveImage()

Python: cv2.imwrite(filename, img[, params])

Python: cv.SaveImage(filename, image)

原函数定义如下:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation

函数功能:

      将mat格式转换为image文件保存,支持的格式和imread一致。

函数参数:

      filename:保存的文件名。后缀名将会被自动用来表示标示文件类型。

image:图片数据

parems:表示为特定格式保存的参数编码,它有默认值。参数是以参数对的方式进行设置的。

  • 对于JPEG格式的图片,这个参数表示从0-100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值是95.

  • 对于PNG格式的图片,这个参数表示压缩级别(CV_IMWRITE_PNG_COMPRESSION)从0-9.较高的值意味着更小的尺寸和更长的压缩时间而默认值是3.

  • 对于PPM,PGM或PBM格式的图片,这个参数表示一个二进制格式标志(CV_IMWRITE_PXM_BINARY),取值为0或1,而默认值为1.

下面保存成jpg的图片看看:

import cv2img = cv2.imread("./1.jpeg")# 打印图像类型
print(type(img))
print(img)cv2.imshow("image",img)cv2.waitKey(0)cv2.destroyAllWindows()cv2.imwrite("demo_output_qd.jpg",img)
cv2.imwrite("demo_output_Q10.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),10])
cv2.imwrite("demo_output_Q100.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),100])

在同级目录下面新增加了3个文件:

比如:CV_IMWRITE_JPEG_QUALITY为10:

而当这个值为100时候:

OpenCV基础操作_图片读取和保存相关推荐

  1. opencv之中英文路径图片读取与保存

    opencv之中英文路径图片读取与保存 关于如何用opecncv读取和写入图片网上已经有很多教程,这里只是记录一下,用的时候方便查找. 1.opencv读写英文路径图片 使用函数imread()和im ...

  2. 利用Python+opencv进行视频文件的读取和保存,打开笔记本摄像头拍照保存、图像在窗口显示等操作

    版权声明:本文为博主原创文章,转载请附源链接 一.视频文件的读取和保存 Opencv中视频的读入是用VideoCapture函数,保存用的是VideoWriter函数.这两个函数支持的视频格式因电脑系 ...

  3. python视频操作——python实现读取和保存视频

    python读取和保存视频 内容来自博客+博客~ 读取视频 用cv2库的好处是返回的就是arrary,不用转换,但这种方法是从头读到尾 利用cv2库读取视频,代码实现如下: import cv2cap ...

  4. 用c语言实现存储和读取图片文件,C++实现单张图片读取和保存

    使用C++实现对单张图片的读取和保存,C语言可以参考,比较简单. #include using namespace std; void main(void) { //保存输入图像文件名和输出图像文件名 ...

  5. OpenCV基础教程——视频的读取与写入(超详细+附代码)

    上一篇文章介绍了OpenCV对于图像的处理方法,然而目前对视频的处理分析越来越成为计算机视觉的主流,视频中包含的信息量要远远大于图片,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像 ...

  6. R语言学习笔记NO.2 数据处理的基础操作_变量/观测的增改选排

    我们先创建一个基础数据框df,用madata记录初始值. 初值备份是一个良好的习惯,这可避免你在误操作后丢失初值. > manager<-c(1,2,3,4,5) > date< ...

  7. 电脑基础操作_在东莞大朗,学习电脑办公软件,就要找这样的学校!

    大朗领航电脑培训学校简介: 大朗领航培训学校成立于2004年,学校环境优雅,设施齐全,师资力量雄厚. 大朗领航办公自动化培训师资介绍: 丰富经验的授课教师,多年办公实操以及教学经验,老师对学员负责,有 ...

  8. 电脑基础操作_学电脑到万科!怀集万科电脑培训2019全面招生!

    招生对象:不限人群,年龄和学历. 适合以下群体: 电脑零基础待业或在职人员 有基础但不熟练, 不具有实际操作经验的人员 想做文职白领的在职或待业人员 正找工作的城乡待业青年 适合于人事.财务管理.设计 ...

  9. 电脑基础操作_电脑基础操作常识入门必学知识

    很多人觉得自己都是电脑高手了,只是很多最基础的知识我们都知道吗? 下面就来看看,这些很简单的计算机入门知识,或许很多操作你都不是很懂哦! 1.重命名文件或者文件夹的方法: 1)选中--右键--重命名 ...

最新文章

  1. activity使用dialog主题
  2. Golang访问Redis初体验
  3. WF4.0 基础篇 (三) 流程实例WorkflowApplication与设计WF程序的基本原则
  4. python8.3多进程
  5. VTK:可视化之ScalarVisibility
  6. python函数和方法概念_第48p,什么是函数?,Python中函数的定义
  7. 原来竟然还有这种局部变量!
  8. Datamill 一个开源的框架
  9. 一个简单的string类,读书看报系列(一)
  10. 在线点餐外卖系统 毕业设计毕业论文参考(1)功能
  11. 运行jar文件,jar程序闪退,cmd命令行黑框一闪而过,无法启动jar文件
  12. 雷军—我十年的程序员生涯
  13. Scrapy抓站:大批量下载360指定专题下的照片并保存到sql和本地文件夹下
  14. 华科计算机保研复试题目,2010华科保研复试经验谈
  15. LoRa 凭什么传的远、信噪比高、误码率低?
  16. Memory Barriers
  17. 你想要的继承知识点都在这里
  18. NestedTensor(DETR)
  19. mysql ocp 认证 题库_MySQL 8 OCP(1Z0-908)认证考试题库原题(第12题)
  20. 网络安全及安全分析(1)

热门文章

  1. GD32F303使用笔记——SPI0(一)
  2. 什么是 rest 参数?
  3. 从熵的角度去看公司变迁
  4. XXL-JOB原理--执行器注册(二)
  5. BOM引导——浏览器屏蔽弹出窗口的办法以及检查是否屏蔽的方法。
  6. 开源网络模拟器ns-3 架构与实践
  7. 马士兵-郑金维—并发编程—2.并发编程的三大特性
  8. 解析以太坊区块链跨链交易,并爬虫爬取更新于数据库
  9. resize函数了解
  10. 手机系统更新有坏处吗?