这一篇博客介绍几个python处理图像的常见库,介绍基础的存取和显示,旨在帮助大家更好的选择合适的库进行图像处理,或者结合pytorch等深度学习框架进行图像的读取与显示

1.OpenCV

OpenCV是一个计算机视觉和软件库,由C++编写而成,常用python接口

CV(computer vision)意为计算机视觉,OpenCV经常用在计算机视觉领域,如目标检测中结合深度学习使用,封装了许多机器学习和深度学习算法,同时它可以调取摄像头

下载opencv:

# 需要先安装numpy和matplotlib
pip install opencv_python

读入图片:

注意opencv读取默认是BGR通道,这里转换成RGB通道 ,以适应其他库的习惯

import cv2
import matplotlib.pyplot as plt # 用于在jupyter中绘图img_bgr = cv2.imread("images/Tokyo.png") # BGR通道
img_rgb = img_bgr[:,:,::-1] # python中::-1代表反转,也就是将BGR通道变成RGB通道img_rgb

可以看到,OpenCV是以数组形式读取图片

在窗口显示:

cv2.imshow("myImage",img_bgr)
cv2.waitKey(0) # 等待用户按键触发,设置为0即无限制等待||显示视频时表示帧间延迟(一定要>0)

在jupyter显示:

dpi:每英寸内的像素点数

# 显示BGR和RGB的区别
# plt.figure(dpi=90) #dpi越大显示越大
plt.imshow(img_bgr)
plt.show() # 显示BGR通道# plt.figure(dpi=90)
plt.imshow(img_rgb)
plt.show() # 显示RGB通道

# 图片保存
cv2.imwrite("data/myImage.png",img)

2.PIL

PIL全称Pillow,是基础图像处理库,主要有两个功能:

图像归档:创建略缩图,生成预览图,批量处理

图像处理:调整大小,裁剪图像,像素点处理,添加滤镜,颜色处理

from PIL import Image
import matplotlib.pyplot as pltimg = Image.open("images/Tokyo.png")
print(type(img))# 图片显示
# img.show() # 在窗口显示
# plt.imshow(img) # 在jupyter显示# 图片保存
img.save("data/myImage.png")

可以看到,PIL将图片作为一个类型

<class 'PIL.PngImagePlugin.PngImageFile'>

3.matplotlib

import matplotlib.pyplot as pltimg = plt.imread("images/Tokyo.png")
print(type(plt))plt.imshow(img)
plt.savefig("data/myImage1.png")

可以看到,matplotlib也将图片作为一个类型

<class 'module'>

4.其他

上面的比较常用另外,还有Scipy(主要用于数学和科学计算),Pgmagick(图像处理)等库可供选择,有的深度框架也自己定义了图像存取模块,如keras的keras.preprocessing.image

python显示图片的方式(OpenCV,PIL,matplotlib)相关推荐

  1. python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标

    又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...

  2. python显示图片_python图像显示

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 使用python进行数字图片处理,还得安装pillow包. 虽然python里面 ...

  3. python显示图片列表_python读取图片任意范围区域

    使用python进行图片处理,现在需要读出图片的任意一块区域,并将其转化为一维数组,方便后续卷积操作的使用. 下面使用两种方法进行处理: convert 函数 from PIL import Imag ...

  4. python解码图片_python的opencv读取解码的base64图片失败

    问题描述 js利用canvas.toDataURL("image/png")将canvas元素转化为base64的图片编码. python获取base64编码并解码并且保存为图片储 ...

  5. python显示图片并且动态刷新_python Tkinter的图片刷新实例

    调用python自带的GUI制作库 一开始想用Tkinter制作GUI的,网上说是python自带的,结果输入: import tkinter 后,显示: _ImportError: No modul ...

  6. opencv java 显示图片_【opencv三】利用opencv读取显示图片

    在opencv中读取显示图片的头文件是highgui.hpp. 整体代码如下,如要测试自己的图片,需要将代码段中的图片地址更改为自己图片的绝对路径. #include "opencv2/hi ...

  7. python显示图片image_用Python语言显示图片的倒影效果

    Python是一种强大的开源解释性语言,最初是在苹果计算机上被编译成功的,但现在它已经可以运行于世界上主流的操作平台之上了,对于常见的Linux和Windows平台的支持当然更不在话下.Python脚 ...

  8. 直播商城开发 python 显示图片的方法

    1.不能正常显示但通道灰度图 import matplotlib.pyplot as pltplt.imshow(mat) plt.show() 2.可以正常显示但通道灰度图 import cv2cv ...

  9. python 显示图片matplotlib_Python OpenCV ——Matplotlib显示图片

    Color image loaded by OpenCV is in BGR mode.But Matplotlib displays in RGB mode.So color images will ...

最新文章

  1. RabbitMQ 把一个queue从一个node转移到另外一个node.
  2. Linux内核设计与实现总结。
  3. 成功解决\PyInstaller\compat.py, line 378  out = out.decode(encoding) UnicodeDecodeError: utf-8 codec c
  4. 【杂谈】购言有三签名纪念版书籍,送1~3副有三AI学习扑克牌
  5. 一个创业者的自我修养2019版
  6. 2017年11月04日普及组 Biotech
  7. Qt Remote Object(QtRO)实现进程间通信
  8. @query传参_vue-router中params传参和query传参的区别及处理方法
  9. 【Vue】一个案例带你搞懂methods、watch及computed的使用规则
  10. Netty工作笔记0061---Netty心跳处理器编写
  11. 修改CentOS系统默认编码为中文utf8(也可修改成其他的)
  12. solr mysql安装教程_Solr安装使用教程
  13. python决策树分类wine_Python写算法:二元决策树
  14. Kali学习 | 密码攻击:6.10 创建密码字典
  15. 数字媒体概论——视频
  16. 青龙面板之【追书神器】——5.29
  17. Word:快速插入水平分隔线(转)
  18. Leetcode—— 5369. 统计作战单位数
  19. iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(使用Keychain 存储UUID)
  20. iOS-键盘弹出的类型

热门文章

  1. JAVA Springboot学习
  2. 短视频的人设如何定位?考虑好三点,打造吸引粉丝的人设
  3. 万拓超融合存储CS1000-48
  4. CTF夺旗赛培训——基本知识
  5. 如何重构J2EE应用程序以使用 ring功能
  6. 鸿蒙石碎片7个有什么奖励,DNF:新活动累计签到7天史诗礼盒曝光,200个史诗碎片,真香?...
  7. 安装MATLAB R2018a教程(Win10)
  8. NOI/1.9.8 白细胞计数(用list求解)
  9. 脑洞这么多,科技公司愚人节开玩笑究竟为哪般?
  10. macbook(A1466)安装deepin 后,安装摄像头驱动