OpenCV读取与写入图片的实现


Posted in Python onOctober 13, 2020

1.读取图片

cv2.imread(filename, flags)
  • -filename: 文件名称
  • -flags: 0 读入灰度图片,1 读入彩色图片
cv2.imshow(winname, mat)
  • -winname: 窗口名字
  • -mat: 要展示的图片矩阵

cv2.waitKey(0):暂停程序,这样才能显示图片

import cv2
img = cv2.imread("img.jpg", 1)
cv2.imshow('img', img)
cv2.waitKey(0)

OpenCV读取与写入图片的实现

2.图片写入

读取图片要经历四个步骤:

1.文件的读取
2.封装格式解析(jpg,png等格式)
3.数据解码
4.数据加载

这样读取的图片为图片的原始数据

cv2.imwrite(filename, img)
  • -filename: 图片名称
  • -img: 图片数据
import cv2
img = cv2.imread("img.jpg", 1)
cv2.imwrite('img1.jpg', img)

True

2.1图像质量

1.jpg图片文件是以图片质量为代价进行压缩的,属于有损压缩

cv2.IMWRITE_JPEG_QUALITY: 表示当前的图片质量,压缩范围为0-100,不同压缩比对应不同的图片大小,下面我们来体验一下:

import cv2
img = cv2.imread("img.jpg", 1)
cv2.imwrite('imgTest.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 0])

True

原图像如下:

OpenCV读取与写入图片的实现

图片大小为400kb

压缩之后的图片为:

OpenCV读取与写入图片的实现

图片大小为40kb, 同时出现了严重的马赛克现象

import cv2
img = cv2.imread("img.jpg", 1)
cv2.imwrite('imgTest2.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 50])

True

压缩之后的图片为:

OpenCV读取与写入图片的实现

图片大小为200kb,马赛克现象没那么的严重

2.png图片格式的压缩属于无损压缩,可以设置透明度

import cv2
img = cv2.imread("img.jpg", 1)
cv2.imwrite('imgTest1.png', img)

True

import cv2
img = cv2.imread("img.jpg", 1)
cv2.imwrite('imgTest2.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 0])

True

压缩之后的图像为:

OpenCV读取与写入图片的实现

图片大小为:5.92MB

import cv2
img = cv2.imread("img.jpg", 1)
cv2.imwrite('imgTest3.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 50])

True

图像大小变为2.34MB

由此可知,jpg图片文件图像质量的数值越低,压缩比越高,png图片文件图像质量的数值越低,压缩比越低

3.像素

像素:是指组成图像的小方格

RGB: 每一种颜色都是由RGB(red, green, blue)三种颜色组合而成的

颜色深度:比如,8bit 表示每种颜色的范围是0~255, 所以总共有256^3中颜色

图像宽高:表示在水平方向和竖直方向的像素点的个数

未压缩图片的计算方法: w * h * 颜色通道(3) * 8 bit / 8(B)

3.1像素读取与写入

每一个像素点都有3各部分组成,一般情况下,图片存储的格式为RGB, 但是opecv读取的图片为BGR格式

我们将图片的左上角的一列变为蓝色

import cv2
img = cv2.imread('img.jpg', 1)
(b, g, r) = img[100, 100] # 读取像素值
print(b, g, r)
#10,100 --- 110, 100
for i in range(1, 1000):
  img[10 + i][100] = (255, 0, 0)
cv2.imshow('imageBlue.png', img)
cv2.waitKey(0)

59 54 129

True

OpenCV读取与写入图片的实现

到此这篇关于OpenCV读取与写入图片的实现的文章就介绍到这了,更多相关OpenCV读取与写入图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python异常处理中的Finally else的功能
Dec 29 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 Python
python实现AES加密与解密
Mar 28 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
利用python实现逐步回归
Feb 24 Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
Python如何实现机器人聊天
Sep 10 Python
Python数据可视化之绘制柱状图和条形图
May 25 Python
Python实现数据的序列化操作详解
Jul 07 Python
Django Form常用功能及代码示例
Oct 13 #Python
Python语言编写智力问答小游戏功能
Oct 13 #Python
Django Auth用户认证组件实现代码
Oct 13 #Python
通过代码实例了解Python3编程技巧
Oct 13 #Python
Python SQLAlchemy库的使用方法
Oct 13 #Python
Pycharm github配置实现过程图解
Oct 13 #Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 #Python
You might like
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
JavaScript模块详解
2017/12/18 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
python删除不需要的python文件方法
2018/04/24 Python
Python字符串的常见操作实例小结
2019/04/08 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
《小鹰学飞》教学反思
2014/04/23 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
检讨书格式范文
2015/05/07 职场文书
公司开业致辞
2015/07/29 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
关于MySQL中的 like操作符详情
2021/11/17 MySQL