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中的yield使用方法
Feb 11 Python
Python中返回字典键的值的values()方法使用
May 22 Python
python实现按任意键继续执行程序
Dec 30 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
解决python使用open打开文件中文乱码的问题
Dec 29 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
Apr 10 Python
pandas ix &iloc &loc的区别
Jan 10 Python
浅析python的Lambda表达式
Feb 27 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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
世界上第一台立体声收音机
2021/03/01 无线电
PHP 进程锁定问题分析研究
2009/11/24 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
校长就职演讲稿
2014/01/06 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
教师个人教学总结
2015/02/11 职场文书
中学社团活动总结
2015/05/07 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server