python显示图片的方式(OpenCV,PIL,matplotlib)
这一篇博客介绍几个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)相关推荐
- python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标
又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...
- python显示图片_python图像显示
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 使用python进行数字图片处理,还得安装pillow包. 虽然python里面 ...
- python显示图片列表_python读取图片任意范围区域
使用python进行图片处理,现在需要读出图片的任意一块区域,并将其转化为一维数组,方便后续卷积操作的使用. 下面使用两种方法进行处理: convert 函数 from PIL import Imag ...
- python解码图片_python的opencv读取解码的base64图片失败
问题描述 js利用canvas.toDataURL("image/png")将canvas元素转化为base64的图片编码. python获取base64编码并解码并且保存为图片储 ...
- python显示图片并且动态刷新_python Tkinter的图片刷新实例
调用python自带的GUI制作库 一开始想用Tkinter制作GUI的,网上说是python自带的,结果输入: import tkinter 后,显示: _ImportError: No modul ...
- opencv java 显示图片_【opencv三】利用opencv读取显示图片
在opencv中读取显示图片的头文件是highgui.hpp. 整体代码如下,如要测试自己的图片,需要将代码段中的图片地址更改为自己图片的绝对路径. #include "opencv2/hi ...
- python显示图片image_用Python语言显示图片的倒影效果
Python是一种强大的开源解释性语言,最初是在苹果计算机上被编译成功的,但现在它已经可以运行于世界上主流的操作平台之上了,对于常见的Linux和Windows平台的支持当然更不在话下.Python脚 ...
- 直播商城开发 python 显示图片的方法
1.不能正常显示但通道灰度图 import matplotlib.pyplot as pltplt.imshow(mat) plt.show() 2.可以正常显示但通道灰度图 import cv2cv ...
- python 显示图片matplotlib_Python OpenCV ——Matplotlib显示图片
Color image loaded by OpenCV is in BGR mode.But Matplotlib displays in RGB mode.So color images will ...
最新文章
- RabbitMQ 把一个queue从一个node转移到另外一个node.
- Linux内核设计与实现总结。
- 成功解决\PyInstaller\compat.py, line 378 out = out.decode(encoding) UnicodeDecodeError: utf-8 codec c
- 【杂谈】购言有三签名纪念版书籍,送1~3副有三AI学习扑克牌
- 一个创业者的自我修养2019版
- 2017年11月04日普及组 Biotech
- Qt Remote Object(QtRO)实现进程间通信
- @query传参_vue-router中params传参和query传参的区别及处理方法
- 【Vue】一个案例带你搞懂methods、watch及computed的使用规则
- Netty工作笔记0061---Netty心跳处理器编写
- 修改CentOS系统默认编码为中文utf8(也可修改成其他的)
- solr mysql安装教程_Solr安装使用教程
- python决策树分类wine_Python写算法:二元决策树
- Kali学习 | 密码攻击:6.10 创建密码字典
- 数字媒体概论——视频
- 青龙面板之【追书神器】——5.29
- Word:快速插入水平分隔线(转)
- Leetcode—— 5369. 统计作战单位数
- iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(使用Keychain 存储UUID)
- iOS-键盘弹出的类型
热门文章
- JAVA Springboot学习
- 短视频的人设如何定位?考虑好三点,打造吸引粉丝的人设
- 万拓超融合存储CS1000-48
- CTF夺旗赛培训——基本知识
- 如何重构J2EE应用程序以使用 ring功能
- 鸿蒙石碎片7个有什么奖励,DNF:新活动累计签到7天史诗礼盒曝光,200个史诗碎片,真香?...
- 安装MATLAB R2018a教程(Win10)
- NOI/1.9.8 白细胞计数(用list求解)
- 脑洞这么多,科技公司愚人节开玩笑究竟为哪般?
- macbook(A1466)安装deepin 后,安装摄像头驱动