python:图像的读入显示与存储
Posted 玊柯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:图像的读入显示与存储相关的知识,希望对你有一定的参考价值。
目录
引入本文所用模块
import cv2 as cv
from skimage import io
import matplotlib.pyplot as plt
读入图像
OpenCV:
img_bgr = cv.imread('./img.jpg',1) #BGR格式
img_gray = cv.imread('./img_gray',0) #灰度图
- cv.imread(fname,0)
- cv.imread(fname,1)
fname( 即filename),表示文件名或者文件路径,为字符串
0 表示 以灰度图的形式读入图像;1表示 以彩图(BGR格式)读入图像
skimage.io:
img = io.imread('./img.jpg') #RGB格式
img_gray = io.imread('./img_gray.jpg',as_gray=True) #灰度图
- io.imread(fname,as_gray=False)
fname 表示文件名或者文件路径
as_gray 不写默认为False,表示读入的图像为彩图(RGB格式);为True,表示读入的图像为灰度图
存储图像
OpenCV:
cv.imwrite('./img_cv.jpg',img) #img为BGR格式
- cv.imwrite(fname,img)
- 注意:imwrite保存成功返回值为True,保存的图像为彩图时要求格式为BGR
skimage.io:
- io.imsave(fname,img)
io.imsave('./img_io.jpg',img) #img为RGB格式
matplotlib.pyplot:
- plt.imsave(fname,img)
plt.imsave('./img_plt.jpg',img) #img为RGB格式
显示图像
OpenCV:
cv.imshow("img",img) #显示图像
cv.waitKey(0) #等待指令
- cv.imshow(title,img)
- 注意:必须有等待指令,否则图像将一闪而过
matplotlib.pyplot:
1、脚本层
通俗来讲,就是基础层,简单方便。对于新手以及只是想显示图像、对绘图细节没有要求的绘图情况比较适合
plt.imshow(img) #构图
plt.title("img") #显示标题
plt.show() #绘图(展示图像)
2、艺术家层
没错,就是字面意思,拿起画板,抚平画纸,绘图,像一个艺术家一样,更注重细节,可调控细节。
fig, ax = plt.subplots(2,1,figsize=(12,8))
ax[0].imshow(img) # 在第1个画布上展示彩图
ax[0].set_title("img")
ax[1].imshow(img_gray,cmap='gray') #在第2个画布上展示灰度图
ax[1].set_title("img_gray")
plt.tight_layout()
plt.show()
- plt.subplots(2,1,figsize=(12,8)):表示构造一个大小为 12X8 的画板,画板上有 2行1列 个画布,返回值 fig 表示画板对象,返回值 ax 表示画布对象
- 第一行第一列的画布表示为 ax[0,0] 或 ax[0][0] ,如果只有一列可写成ax[0](编程语言中以0作为第一个)
- cmap : 颜色映射,显示灰度图用 cmap='gray'即可
谢谢你的浏览,如果哪里有问题,欢迎指正~
以上是关于python:图像的读入显示与存储的主要内容,如果未能解决你的问题,请参考以下文章