图像的输入输出与显示---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 简单图形用户界面用于可视化结果和探索参数
相关文章
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
575 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
3893 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
10月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
610 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
11月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
1134 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
622 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
523 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
存储 JSON API
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
620 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
375 3
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制

推荐镜像

更多