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 相关文章推荐
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
Jan 22 Python
浅谈Python的文件类型
May 30 Python
python编程实现归并排序
Apr 14 Python
利用python写个下载teahour音频的小脚本
May 08 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
Python安装pycurl失败的解决方法
Oct 15 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
Mac安装python3的方法步骤
Aug 09 Python
tornado+celery的简单使用详解
Dec 21 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 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 分页原理分析,大家可以看看
2009/12/21 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python科学计算之Pandas详解
2017/01/15 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
详解Python locals()的陷阱
2019/03/26 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
python3的pip路径在哪
2020/06/23 Python
python实现双人五子棋(终端版)
2020/12/30 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
struct和class的区别
2015/11/20 面试题
兼职学生的自我评价
2013/11/24 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
创业女性典型材料
2014/05/02 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
java设计模式--建造者模式详解
2021/07/21 Java/Android