使用skimage.ioimsave()函数在Python中保存图像
发布时间:2023-12-22 20:42:11
在Python中,可以使用scikit-image(skimage)库的imsave()函数保存图像。该函数用于将numpy数组保存为图像。
下面是imsave()函数的使用示例:
from skimage import io
# 读取图像
image = io.imread('input_image.jpg')
# 保存图像
io.imsave('output_image.jpg', image)
在上面的例子中,首先使用io.imread()函数从文件中读取图像,并将其存储在名为image的变量中。然后,使用io.imsave()函数将image保存为名为output_image.jpg的文件。
除了使用文件路径保存图像外,imsave()函数还可以使用类似于文件对象的I/O对象将图像保存到字节流中。下面是一个使用BytesIO的示例:
from skimage import io
from io import BytesIO
import requests
# 从URL中读取图像
response = requests.get('https://example.com/input_image.jpg')
image = io.imread(BytesIO(response.content))
# 保存图像到字节流
output_stream = BytesIO()
io.imsave(output_stream, image, format='jpeg')
# 将字节流保存到文件
with open('output_image.jpg', 'wb') as f:
f.write(output_stream.getvalue())
在这个示例中,首先使用requests.get()函数从URL中获取图像文件的字节流。然后,通过BytesIO(response.content)将字节流读入到image数组中。接下来,创建了一个BytesIO对象output_stream,并使用io.imsave()函数将图像保存到该字节流中。最后,将字节流保存到文件output_image.jpg。
仅使用io.imsave()函数,您可以通过调整格式参数保存图像的格式,如上例所示的format='jpeg'。这个参数可以是png、bmp、tif等。
请注意,io.imread()函数使用的路径可以是相对路径或绝对路径,也可以是远程URL。但需要确保图像文件存在,并具有正确的文件扩展名。
