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实现的阳历转阴历(农历)算法
Apr 25 Python
python中的五种异常处理机制介绍
Sep 02 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
mac下如何将python2.7改为python3
Jul 13 Python
pytorch使用Variable实现线性回归
May 21 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
Python调用C/C++的方法解析
Aug 05 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 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
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
详解php用static方法的原因
2018/09/12 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
JS打开新窗口的2种方式
2013/04/18 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
python实现问号表达式(?)的方法
2013/11/27 Python
python运行其他程序的实现方法
2017/07/14 Python
Python多线程原理与用法详解
2018/08/20 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
django连接oracle时setting 配置方法
2019/08/29 Python
python django中8000端口被占用的解决
2019/12/17 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
网络安全方面的面试题
2016/01/07 面试题
旷课检讨书大全
2014/01/21 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
《日月潭》教学反思
2014/02/28 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
挂靠协议书范本
2014/04/22 职场文书
教师考察材料范文
2014/06/03 职场文书
中小学生学籍证明
2014/10/25 职场文书
儿园租房协议书范本
2014/12/02 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python