当前位置: 首页 > news >正文

PIL.Image与cv2之间的常用API汇总

简单介绍

主要是因为经常用到这两个,经常弄混淆,所以,总结一番。持续更新。

from PIL import Image 
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

1、读取文件与写入文件

1.1 Image.open()

img_pil = Image.open(fp[, mode, formats])

在这里插入图片描述

1.2 cv.imread()

img_cv = cv2.imread(fp[,flags])
fp是所要读的图像的路径名
flags是加载图像的方式,主要有以下三种:(可以写数字,也可写前面的英文字符串)
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可以直接写1。
cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,可以直接写-1

cv.imread读取完图片后,是以BGR的顺序存储图片颜色通道的。但是plt.imshow此时是直接输出存储的后的文件,所以输出是图片的通道顺序就变成BGR了,而不是原图片的RGB形式。暂时可以不用解决显示的问题。
在这里插入图片描述

1.3 img_PIL.save()

save_path = '02.jpg'
image_pil.save(save_path)

1.4 cv.imwrite()

save_path = '03.jpg'
cv.imwrite(save_path,img_cv) # 保存后,颜色从BGR转回RGB

2、数据类型与两者转换

PIL.Image读取的类型是PIL.PngImagePlugin.PngImageFile 类型
而cv读取与处理的是numpy.ndarray类型
两者之间可以相互转换

img_PIL = Image.fromarray(img_cv)img_cv = np.asarray(img_PIL)

2.1 PIL.Image 转ndarray

注意颜色通道是rgb,如果用cv的话,会默认为bgr

2.2 ndarray转Image

注意,此时的颜色通道
在这里插入图片描述

3、属性

3.1 img_pil的形状

注意此处是,先列后行
在这里插入图片描述

3.2 img_cv的形状

如果读入的是灰度图像,则只有行和列
在这里插入图片描述

3.3 img_pil获取与修改像素点

在这里插入图片描述

3.4 img_cv获取与修改像素点

在这里插入图片描述

完整代码同步更新

here

http://www.lryc.cn/news/5546.html

相关文章:

  • 【csdn首发】全网爆火的从零到一落地接口自动化测试
  • 基于应力的拓扑优化的高效3D灵敏度分析代码(Matlab代码实现)
  • PMP®十万个为什么(二)
  • 【Linux】生产者消费者模型
  • 2023/2/13 蓝桥备战acwing刷题(set的使用、简单推个不等式+差分、快速幂、01背包模板回顾、类似01背包的题)
  • 【情人节专属】AI一键预测你和Ta的CP值
  • 一文浅谈sql中的 in与not in,exists与not exists的区别以及性能分析
  • 2023前端面试题——JS篇
  • 微服务中API网关的作用是什么?
  • python爬虫--xpath模块简介
  • 【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述
  • 【云原生kubernetes】k8s service使用详解
  • Python 数据可视化的 3 大步骤,你知道吗?
  • CSS基础:盒子模型和浮动
  • OpenHarmony使用Socket实现一个TCP服务端详解
  • kafka监控工具安装和使用
  • 近期工作感悟
  • 大数据框架之Hadoop:HDFS(三)HDFS客户端操作(开发重点)
  • 多模式支持无线监控技术:主动式定位、被动式定位
  • Cy5 Alkyne,1223357-57-0,花青素Cyanine5炔基,氰基5炔烃
  • 【MySQL】MySQL 中 WITH 子句详解:从基础到实战示例
  • c/c++开发,无可避免的模板编程实践(篇一)
  • mulesoft MCIA 破釜沉舟备考 2023.02.13.04
  • Camtasia2023最新版本新功能及快捷键教程
  • Fabric磁盘扩容后数据迁移
  • 大厂光环下的功能测试,出去面试自动化一问三不知
  • SATA SSD需要NCQ开启吗?
  • 知识图谱业务落地技术推荐之图神经网络算法库图计算框架汇总
  • ==与equals()的区别
  • 【人工智能】对贝叶斯网络进行吉布斯采样