使用cv2、Image、plt打开、显示和保存图片

文章目录

  • 使用cv2、Image、plt打开、显示和保存图片
    • 0、读取图片
    • 1、使用cv2显示cv2打开的图片
    • 2、使用cv2显示Image打开的图片
    • 3、使用Image显示Image打开的图片
    • 4、使用Image显示cv2打开的图片
    • 5、使用plt显示cv2打开的图片
    • 6、使用plt显示Image格式的图片
    • 7、使用plt显示多张图片

0、读取图片

import cv2
from PIL import Image
import matplotlib.pyplot as pltimage_read_cv2 = cv2.imread('./cat.jpg', cv2.IMREAD_COLOR)  # 使用cv2打开图片
image_read_Image = Image.open('./cat.jpg')  # 使用Image打开图片

print(image_read_cv2.shape)
使用cv2打开的图片格式是:(1440, 2560, 3) [h, w, c]
通道顺序是BGR

print(image_read_Image.size)
使用Image打开的图片格式是:(2560, 1440) [w, h]
通道顺序是RGB

提炼知识点:cv2格式图片和Image格式图片格式互转

# cv2格式图片和Image格式图片格式互转
# 1、cv2 --> Image
image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
# 2、Image --> cv2
image0 = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)

1、使用cv2显示cv2打开的图片

def cv2_show_cv_image(image):  # 使用cv2显示cv2打开的图片cv2.namedWindow('image', 0)  # 命名一个窗口cv2.resizeWindow('image', 600, 500)  # 将窗口大小进行调整,这两部主要是为了防止图片过大,屏幕显示不下cv2.imshow('image', image)  # 显示图片cv2.waitKey(0)  # 等待,按任意键跳过,如果没有这个,窗口会是一闪而过cv2.destroyWindow('image')  # 这个和下一句都是关闭窗口,只不过这是关闭指定窗口# cv2.destroyAllWindows()  # 关闭此时cv2所有打开的窗口# cv2.imwrite('cat.png', image)  # cv2保存图片

2、使用cv2显示Image打开的图片

def cv2_show_Image_image(image):image0 = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)  # 将Image格式的图片转成np进而转换成cv2格式cv2.namedWindow('image', 0)  # 命名一个窗口cv2.resizeWindow('image', 600, 500)  # 将窗口大小进行调整,这两部主要是为了防止图片过大,屏幕显示不下cv2.imshow('image', image0)  # 显示图片cv2.waitKey(0)  # 等待,按任意键跳过,如果没有这个,窗口会是一闪而过cv2.destroyWindow('image')  # 这个和下一句都是关闭窗口,只不过这是关闭指定窗口

3、使用Image显示Image打开的图片

def Image_show_Image_image(image:Image):image.show()# image.save('image.jpg')  # 保存

一般在dataset中使用Image进行处理

# 这个操作主要是为了保证将图片进行缩放后,保持原图的纵横比不变
image = image.resize((new_w, new_h), Image.BICUBIC)  # 对图片进行缩放
image_new = Image.new('F', size=(in_w, in_h), color=0)  # 创建一个新的蒙版
image_new.paste(image, (dx, dy))  # 将原画图粘贴到新的蒙版上

4、使用Image显示cv2打开的图片

这个应用场景可以是dataset加载时使用cv2先对图片进行预处理,再转换成Image格式,

def Image_show_cv2_image(image:cv2):image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))  # 把图片从cv2格式转换成Imageimage.show()

5、使用plt显示cv2打开的图片

# 使用plt显示cv2格式的图片
def plt_show_cv2_image(image):image0 = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)plt.figure()  # 打开一个画布plt.axis('off')  # 不打开坐标轴plt.imshow(image0)plt.show()  # 加上这个才能显示# plt.pause(0.01)  # 暂时显示0.01秒# plt.draw()  # 重新绘制当前图形

6、使用plt显示Image格式的图片

# 使用plt显示Image格式的图片
def plt_show_Image_image(image:Image):plt.figure()plt.imshow(image)plt.show()

7、使用plt显示多张图片

def plt_show_multi_image(image1, image2):def plt_show_multi_image(image1, image2):fig = plt.figure(num=1)fig.tight_layout()  # 调整整参数使子图填充整个区域,不会出现字体重叠plt.subplot(121)  # 定位到第一个子图plt.imshow(image1)  # 第一个字图需要显示的图片plt.subplot(122)plt.imshow(image2)plt.show()  # 把画布显示出来

使用plt绘制图之后使用plt.savefig('cats.png') 保存图片

python中cv2、Image和plt的图片打开、显示和保存相关推荐

  1. matlab的imshow python中cv2.imshow及plt.imshow相关测试

    在对灰度图.二值图测试显示过程中,发现matlab的imshow函数和plt.imshow函数显示的图像会出现信息缺失情况,让人误以为图像矩阵像素值发生变化.经过测试,是由于imshow函数存在像素缩 ...

  2. opencv python 中cv2.putText()函数的用法

    opencv python 中cv2.putText()函数的用法 文章目录: 一.快速使用 二.官方文档 三.使用举例 虽然用啦很多次,还是决定记录一下 一.快速使用 cv2.putText(ima ...

  3. python 2: 解决python中的plot函数的图例legend不能显示中文问题

    python 2: 解决python中的plot函数的图例legend不能显示中文问题 参考文章: (1)python 2: 解决python中的plot函数的图例legend不能显示中文问题 (2) ...

  4. 使用Python中的matplotlib将多个图片显示到一张图内

    在我们写论文或是汇报时,经常需要整合所得到的可视化数据结果,插入我们的论文中.如下所示的情况,我们需要将四个相关的弹性模量预测结果在一张图里展示. 使用matplotlib库中的子图(subplot) ...

  5. python中使用requests库获取昵图网图片,且正则中re.S的用法

    python中使用requests库获取图片,且正则表达式中re.S的用法以及r.text和r.content的区别和搜索关键词 这里我获取的是昵图网的图片 代码附上 这里我获取的是2020的图片 i ...

  6. 在python中可以使用urllib方便的实现图片和flash下载

    非线程安全 import urllib url = "http://www.udooo.com/cooperate/qq/images/081128/left.swf" path ...

  7. python中plot不能显示标签_python 2: 解决python中的plot函数的图例legend不能显示中文问题...

    问题: 图像标题.横纵坐标轴的标签都能显示中文名字,但是图例就是不能显示中文,怎么解决呢? 解决: plt.figure() plt.title(u'训练性能', fontproperties=fon ...

  8. django调用python脚本返回_Django使用HttpResponse返回图片并显示的方法

    做了一个关于Django的小案例,想要在网页中显示图片,直接在img标签的src属性写图片的路径是不能显示的,查询资料发现在Django中使用图片这类的资源相当繁琐需要进行一定D的配置,摸索了一会没有 ...

  9. laravel项目中css样式表的背景图片不显示

    刚学laravel,遇到了很多坑,感觉laravel是挺强大的. 建好后台项目,奈何css样式表的背景图片不显示 .mainhd {background: url(../images/sky/body ...

  10. OpenCV Python教程(1、图像的载入、显示和保存)

    本文是OpenCV  2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonO ...

最新文章

  1. ORB_SLAM2 定位模式
  2. linux下IPTABLES配置详解
  3. sql and和in能连用吗_解析法律英语中【同义词连用】现象
  4. 如果我有jQuery背景,那么“ AngularJS中的思考”吗? [关闭]
  5. 基于snmp的windows主机私有信息监控(编辑中)
  6. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器
  7. axure8.0导出页面打不开问题_excel怎么转pdf?excel打不开?转换成PDF就行了
  8. Asterisk拨号方案语法基础
  9. 页面增加html,为静态页面HTML增加session功能
  10. css3 下边框缓缓划过_干货来袭!web前端开发工程师必看之如何使用CSS3实现瀑布流效果?...
  11. C++语言基础 —— STL —— 算法 —— unique() 的使用
  12. iso安装器_mac怎么装双系统|mac电脑安装双系统教程
  13. 重置winsock目录
  14. android 人脸识别边框_Android camera实时预览 实时处理,人脸识别示例
  15. TI单芯片毫米波雷达代码走读(二十二)—— 距离维CA-CFAR检测与目标统计
  16. 【实现操作系统 02】FAT12 文件系统(摆脱术语用实际例子介绍)
  17. 卡耐基梅陇大学计算机学院名人,卡内基梅隆大学_美国计算机专业排名前十
  18. base64字符串转化成图片
  19. 25. 获取员工其当前的薪水比其manager当前薪水还高的相关信息
  20. DirectShow Utility

热门文章

  1. 大数据基础教程丨TiDB数据库从入门到实践
  2. 猿人学之js混淆源码乱码
  3. 使用搜狗浏览器的教育网代理进行下载
  4. 开发的页面卡顿、慢?一文教你如何进行页面性能优化
  5. 【天光学术】现当代文学论文:《围城》中人情世情的体现及其描写方法(节选)
  6. 7-2 挑选苹果 (40分)
  7. fwr310虚拟服务器设置,fast迅捷FWR310无线路由器设置图文教程
  8. 斐波那契数列(剑指offer 10-I)
  9. 中国气象局国家气候中心
  10. 墙裂推荐6本适用于所有Java程序员阅读书籍