imsave函数
1.作用
imsave函数的作用是将一个图像数组保存到磁盘文件中。它可以将多种格式的图像以不同的压缩方式进行保存,支持JPEG、PNG、TIFF、BMP等格式,并允许我们通过设置参数来进行批量保存、逐层保存等操作。imsave函数还可以用来存储经过处理过的图像,这对于图像研究和图像处理任务非常有帮助。
2.用法
imsave函数的语法如下:
```
from skimage.io import imsave
imsave(fname, arr, plugin=None, **plugin_args)
```
- fname:要保存的文件名(包括完整路径)
- arr:要保存的图像数组(Numpy数组)
- plugin:图像保存插件的名称,默认为None
- **plugin_args:要传递给插件的关键字参数
我们可以通过下面的示例代码来保存一张图像:
```python
from skimage.io import imread, imsave
#读取图像
cat = imread('cat.jpg')
#将图像保存到当前目录下,名称为"cat.png"
imsave('cat.png', cat)
resize函数c++
```
在这个代码中,我们使用了imsave函数来将cat.jpg图片的格式转换为PNG格式,并命名为“cat.png”,并将其保存到了当前目录下。
3.参数设置
在imsave函数中,我们可以通过设置不同的参数来实现不同的功能:
1)fname
fname是文件名,我们可以使用绝对路径或相对路径指定要保存的文件路径和文件名。如果未指定扩展名,则它将根据所选文件格式自动添加扩展名。
例如:
```python
#将图像保存到'data/cat.png'文件中
imsave('data/cat', cat)
```
在此示例中,函数会自动根据文件格式添加“.png”扩展名,因此最终保存的文件名为“cat.png”。
2)arr
arr是待保存的图像数组,通常是一个Numpy数组。imread函数返回的也是一个Numpy数组,因此我们可以将读取和保存过程结合起来:
```python
from skimage.io import imread, imsave
#读取图像
cat = imread('cat.jpg')
#将读取的图像保存为PNG格式
imsave('cat.png', cat)
```
我们也可以直接使用一些图像处理函数,如图像增强、分割等,然后将处理后的图像数组传递给imsave函数进行保存:
```python
from skimage import color
from skimage.io import imread, imsave
#读取图像
cat = imread('cat.jpg')
#将图像转化为灰度图像
gray_cat = b2gray(cat)
#将处理后的灰度图像保存为PNG格式
imsave('gray_cat.png', gray_cat)
```
在这个例子中,我们使用b2gray函数将图像转换成了灰度图像,然后将处理后的结果保存为PNG格式。
3)plugin
plugin参数指定保存图像时所使用的插件,可以是任意一个支持当前所选文件格式的插件。SKImage中内置了多个插件,可以支持JPEG、PNG、TIFF、BMP等格式的文件保存。
```python
from skimage.io import imread, imsave
#读取图像
cat = imread('cat.jpg')
#将图像保存为JPG格式
imsave('cat.jpg', cat, plugin='pil')
```
在这个例子中,我们使用了“pil”插件将图像保存为JPG格式文件。我们也可以通过传递关键字参数来控制不同的插件参数:
```python
from skimage.io import imread, imsave
#读取图像
cat = imread('cat.jpg')
#将图像保存为PNG格式,压缩级别为5
imsave('cat.png', cat, plugin='pil', compress=5)
```
在这个例子中,我们还传递了一个“compress”参数,用于设置PNG格式保存时的压缩级别。
4)**plugin_args
**plugin_args参数指定任意其他要传递给插件的关键字参数。不同的插件需要传递不同的参数,在SKImage中,每个插件的输入参数都有特定的要求。
```python
from skimage.io import imread, imsave
ansform import resize
#读取图像
cat = imread('cat.jpg')
#调整图像大小为32×32
cat_small = resize(cat, (32, 32))
#将调整后的图像保存为JPG格式,压缩级别为90
imsave('cat_small.jpg', cat_small, plugin='pil', quality=90)
```
在此示例中,我们首先使用resize函数将图像调整为32×32像素,然后再使用“pil”插件将其保存为JPG格式文件。我们还传递了一个“quality”参数,它可以控制JPEG格式的保存质量(由1到100),在这里我们设置为90。
4.注意事项
在使用imsave函数时,需要注意以下几点:
1)文件格式与文件扩展名
每个格式的图像都有一个特定的文件扩展名,如.jpg、.png、.tif等,我们需要在文件名中指定扩展名。如果未指定,则函数将根据文件格式自动添加扩展名,但自动添加的扩展名可能不是我们想要的,这样可能会导致后续的误解和问题。
2)不同文件格式的保存性能
在使用imsave函数保存图像时需要主要不同格式的图像保存性能的差异。如果我们需要保持高质量的图像同时尽可能的减小文件大小,可以尝试使用一些高效率的压缩格式。例如:
- PNG格式:适合用于图像中有大量空白的情况,会采用无损压缩技术,使图像保持原始质量。
- JPEG格式:适合用于颜变化比较平滑的图像,虽然会采用有损压缩技术处理,但可以控制压缩比例来平衡图像质量和文件大小。
3)插件选择
在使用imsave函数时需要根据具体情况选择合适的插件。不同的插件可能有特定的功能和限制,例如压缩级别、保留字段等。我们可以根据具体使用情况来选择并设置插件参数。
5.总结
本文对Python图像处理库SKImage中imsave函数进行了详细的介绍。通过实际的例子,我们展示了如何使用imsave函数将图像保存到磁盘,以及如何根据具体的应用场景和需求,对函数进行不同的参数设置。
我们重点提醒用户需要谨慎处理图像的保存和处理的过程,特别是在保证数据隐私安全和知识产权保护的过程时需要遵循深度学习的道德准则。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论