图像的输入输出与显示---OpenCV-Python开发指南(30)

简介: 图像的输入输出与显示---OpenCV-Python开发指南(30)

前言


在讲解后面的采样以及傅里叶变换之前,我们需要掌握python对图像的输入、输出以及显示等操作。


本篇涉及都是简单的图像显示保存等操作,但是后面基于此复杂的变换都会或多或少用到这些知识。所以,别看非常简单,应用起来还是非常多的。


使用PIL读取,保存和显示图像


在PIL包中,使用Image.open()函数读取磁盘图像。获取图像后,我们可以完整的获取图像的宽高,分辨率等信息。

from PIL import Image
img=Image.open("4.jpg")
print("图像宽度:"+str(img.width))
print("图像高度:"+str(img.height))
print("图像分辨率:"+img.format)
print("图像模式:"+img.mode)
img.show()


运行之后,图片这些信息都会完整的显示出来:

而对于识别图像内容来说,我们一般都是将图像转换为灰度图像。而PIL包转换为恢复图像的方式如下:

img=Image.open("4.jpg")
imgL=img.convert("L")
imgL.show()


运行之后,灰度图像会通过默认的电脑图片显示程序,显示出来。

至于存储图像,我们通过如下代码实现:

imgL.save("1111111.jpg")


使用matplotlib读取,保存和显示图像


OpenCV中,我们对图像进行直方图处理的时候,会经常辅助用到matplotlib包。所以,我们有必要掌握matplotlib包读取,保存与显示图像。

from matplotlib.image import imread
import matplotlib.pyplot as plt
img = imread("4.jpg")#读取图像
print(img.shape, img.dtype, type(img))#输出图像的参数
plt.figure(figsize=(10, 10))
plt.axis("off")#不显示坐标轴
#显示图像
plt.imshow(img)
plt.show()
plt.savefig("11111.jpg")#保存图像


上面注释非常详细,这里就不在赘述。不过,其imshow()方法还有一个插值参数interpolation。

plt.imshow(img,interpolation="spline16")

通过interpolation参数,我们可以使用不同的插值对图像进行处理。


使用scikit-image读取,保存和显示图像


scikit-image包与PIL一样,可以读取图像后获取图像的详细参数信息。同时,它也可以与OpenCV一样进行色彩空间的转换。

from skimage import io,color
import matplotlib.pyplot as plt
img=io.imread("4.jpg")#读取图像
print(img.shape,img.dtype,type(img))#输出图像参数
plt.axis("off")#去除坐标轴
io.imsave("11111.jpg",img)#保存图像
hsv=color.rgb2hsv(img)#图像转换为hsv色彩空间
#显示图像
plt.imshow(hsv)
plt.show()


scikit-image与matplotlib读取后的格式都是numpy.ndarray。


下面是skimage库子模块:

模块

作用

io

读取,保存和显示图片和视频
color 色彩空间变换
data 提供一些测试图片和样本数据
filters 图像增强,边缘检测,排序滤波器,自动阈值等

draw

操作于numpy数组上的基本图形绘制,包括线条,矩阵,圆和文本等
transform 几何变换和其他变换,如旋转,拉伸和Radon(拉东)变换等
exposure 图像强度调整,例如,直方图均衡化等
feature 特征检测和提取, 例如,纹理分析等
graph 图论操作,例如,最短路径
measure 图像属性测量,例如,相似度和轮廓
morphology 形态学操作,如开闭运算,骨架提取等
novice 简化的用于教学目的的接口
restoration 修复算法,例如去卷积算法,去噪等
segmentation 图像分割为多个区域
util 通用工具
viewer 简单图形用户界面用于可视化结果和探索参数
相关文章
|
7天前
|
监控 算法 计算机视觉
探索图像边缘:使用Python进行轮廓检测
探索图像边缘:使用Python进行轮廓检测
28 3
|
7天前
|
机器学习/深度学习 计算机视觉 Python
使用Python改变图像颜色的实用指南
使用Python改变图像颜色的实用指南
10 1
|
13天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
13天前
|
机器学习/深度学习 PyTorch 算法框架/工具
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
|
13天前
|
机器学习/深度学习 人工智能 计算机视觉
使用Python实现简单的图像识别应用
本文介绍了如何使用Python编写一个简单的图像识别应用程序。通过结合Python的图像处理库和机器学习库,我们可以轻松地构建一个能够识别特定物体或图案的程序。本文将从安装必要的库开始,然后逐步介绍如何编写代码来实现图像的加载、处理和识别。
|
14天前
|
计算机视觉 Python
轻松掌握opencv的8种图像变换
轻松掌握opencv的8种图像变换
|
15天前
|
算法 计算机视觉
【OpenCV】- 图像修复
【OpenCV】- 图像修复
|
15天前
|
Serverless 计算机视觉
【OpenCV】-图像的矩
【OpenCV】-图像的矩
|
15天前
|
计算机视觉 Python
【python版CV】图像轮廓&模板匹配
【python版CV】图像轮廓&模板匹配
|
15天前
|
计算机视觉 Python
【python版CV】—图像基本操作
【python版CV】—图像基本操作