python数字图像处理skimage读取显示与保存图片

2023-12-17Python编程
266

Python数字图像处理skimage读取显示与保存图片

一、skimage简介

skimage(scikit-image)是一个基于Python语言的数字图像处理库,提供了常用的数字图像处理算法,例如滤波、变换、分割、特征提取等。同时,它也能与其他Python科学包,例如NumPy、SciPy进行无缝的集成,并支持多种常见图像格式,如PNG、JPEG、BMP等。在本文中,我们将利用skimage来读取、显示和保存图片。

二、读取图片

使用skimage中的imread函数可以读取图片。在读取图片时,通常需要先指定图片的路径,然后将读取到的图片转换为numpy数组,供后续处理。

以下是一个读取图片的示例:

import skimage.io as io
import numpy as np

# 读取图片并保存为numpy数组
img = io.imread('example.jpg')

# 打印图片大小和数据类型
print("Image shape:", img.shape)
print("Data type:", img.dtype)

# 显示图片
io.imshow(img)
io.show()

输出:

Image shape: (224, 224, 3)
Data type: uint8

以上代码中,我们首先导入skimage.io和numpy库。然后使用io.imread函数读取example.jpg,并将读取到的图片保存为numpy数组。我们还打印了一下图片的大小和数据类型,可以看到,该图片大小为224x224,数据类型为uint8。最后,我们使用io.imshow函数显示图片,并用io.show函数展示图片。

三、保存图片

使用skimage中的imsave函数可以将图片保存为指定格式的图片文件。在保存图片时,需要指定保存路径、文件名以及保存格式。

以下是一个保存图片的示例:

import skimage.io as io
import numpy as np

# 读取图片并保存为numpy数组
img = io.imread('example.jpg')

# 保存图片
io.imsave('example_copy.png', img)

以上代码中,我们首先导入skimage.io和numpy库。然后使用io.imread函数读取example.jpg,并将读取到的图片保存为numpy数组。接着我们使用io.imsave函数将图片保存为PNG格式的example_copy.png。执行以上代码后,我们会在当前目录下看到生成了一个example_copy.png的图片文件。

四、示例说明

示例1:将图片转换为灰度图

将彩色图片转换为灰度图是图像处理中的一个常用操作。使用skimage中的color.rgb2gray函数可以将彩色图片转为灰度图,从而方便后续的处理。

以下是一个将图片转为灰度图的示例:

import skimage.io as io
import skimage.color as color

# 读取图片并保存为numpy数组
img = io.imread('example.jpg')

# 将图片转换为灰度图并保存
gray_img = color.rgb2gray(img)
io.imsave('example_gray.png', gray_img)

# 显示灰度图
io.imshow(gray_img)
io.show()

以上代码中,我们首先导入skimage.io和skimage.color库。然后使用io.imread函数读取example.jpg,并将读取到的图片保存为numpy数组。接着,我们使用color.rgb2gray函数将彩色图片转为灰度图,并使用io.imsave函数将灰度图保存为example_gray.png。最后,我们使用io.imshow函数显示灰度图,并使用io.show函数展示灰度图。

示例2:裁剪图片

裁剪图片是图像处理中的一个重要操作,例如对于特定尺寸的图片,我们可以通过裁剪将图片调整为满足我们需求的大小。

以下是一个裁剪图片的示例:

import skimage.io as io

# 读取图片并保存为numpy数组
img = io.imread('example.jpg')

# 裁剪图片
cropped_img = img[50:150, 20:100]

# 显示裁剪后的图片
io.imshow(cropped_img)
io.show()

# 保存裁剪后的图片
io.imsave('example_cropped.png', cropped_img)

以上代码中,我们首先导入skimage.io库。然后使用io.imread函数读取example.jpg,并将读取到的图片保存为numpy数组。接着,我们使用切片的方式对图片进行裁剪,保留从第50行到第150行、从第20列到第100列的部分。然后使用io.imshow函数显示裁剪后的图片,并使用io.show函数展示。最后,我们使用io.imsave函数将裁剪后的图片保存为example_cropped.png。

以上就是使用skimage进行图片读取、显示和保存的示例及攻略,希望对您有所帮助!

The End

相关推荐

解析Python中的eval()、exec()及其相关函数
Python中有三个内置函数eval()、exec()和compile()来执行动态代码。这些函数能够从字符串参数中读取Python代码并在运行时执行该代码。但是,使用这些函数时必须小心,因为它们的不当使用可能会导致安全漏洞。...
2023-12-18 Python编程
117

Python下载网络文本数据到本地内存的四种实现方法示例
在Python中,下载网络文本数据到本地内存是常见的操作之一。本文将介绍四种常见的下载网络文本数据到本地内存的实现方法,并提供示例说明。...
2023-12-18 Python编程
101

Python 二进制字节流数据的读取操作(bytes与bitstring)
来给你详细讲解下Python 二进制字节流数据的读取操作(bytes与bitstring)。...
2023-12-18 Python编程
120

Python3.0与2.X版本的区别实例分析
Python 3.x 是 Python 2.x 的下一个重大版本,其中有一些值得注意的区别。 Python 3.0中包含了许多不兼容的变化,这意味着在迁移到3.0之前,必须进行代码更改和测试。本文将介绍主要的差异,并给出一些实例来说明不同点。...
2023-12-18 Python编程
34

python如何在终端里面显示一张图片
要在终端里显示图片,需要使用一些Python库。其中一种流行的库是Pillow,它有一个子库PIL.Image可以加载和处理图像文件。要在终端中显示图像,可以使用如下的步骤:...
2023-12-18 Python编程
91

Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
在Python中,我们可以使用Pillow库来进行图像处理。具体实现两幅图像合成一幅图像的方法如下:...
2023-12-18 Python编程
103