一、读取图片
imageio.imread()是Python中常用的图片读取函数,支持多种格式的图片,包括png、jpg、bmp、gif、ico等。下面是一个简单的读取图片的代码示例:
import imageio # 读取图片 img = imageio.imread('test.png')
在上述代码中,我们引入了imageio库,并调用了其中的imread()函数来读取一张名为test.png的图片。读取完成后,我们把这张图片存入了img变量中。
二、读取网络图片
imageio.imread()还支持直接读取网络图片,只需在函数中传入图片的URL即可。下面是一个示例代码:
import imageio # 读取网络图片 url = 'https://example.com/image.png' img = imageio.imread(url)
在上述代码中,我们把图片的URL传入imread()函数中,imageio会自动从该URL下载图片并读取。读取完成后,我们把这张图片存入了img变量中。
三、读取视频帧
imageio.imread()不仅可以读取静态图片,还可以读取视频中的每一帧。下面是示例代码:
import imageio # 读取视频中的一帧 video = imageio.get_reader('test.mp4') num_frames = video.get_length() frame_num = 10 img = video.get_data(frame_num)
在上述代码中,我们首先调用imageio.get_reader()函数来读取视频文件。接着,我们查询了视频中的帧数,并随机选取了其中的一帧进行读取。最终,我们把读取到的这一帧存入了img变量中。
四、图像通道处理
imageio.imread()读取的图片是一个numpy数组,该数组的形状为(width, height, channels),channels表示图像的通道数。对于RGB图片,通道数为3,分别表示红、绿、蓝三个通道。
下面是一个示例代码,演示如何对图片的通道进行处理:
import imageio import numpy as np # 读取图片 img = imageio.imread("test.png") # 取出红色通道,并将其原地赋值为0 red_channel = img[:,:,0] img[:,:,0] = 0 # 将RGB三个通道分别存入不同的变量中 r,g,b = np.split(img,3,axis=2)
在上述代码中,我们先读取了一张名为test.png的图片。接着,我们从图片数组中取出了红色通道(第一个通道),并将其原地赋值为0,表示将该通道的像素全部清空。
最后一行代码,我们利用numpy模块的split()函数,将RGB三个通道分别存入r、g、b三个变量中,可以在后续操作中分别处理。
五、图像缩放
imageio.imread()读取的图片,通常会比我们需要的尺寸大或者小。为了适配不同的视觉需求,我们需要对图片进行缩放。下面是一个示例代码,演示如何对图片进行缩放:
import imageio # 读取图片 img = imageio.imread("test.png") # 缩放为指定大小 width = 100 height = 200 resized_img = imageio.imresize(img, (height, width))
在上述代码中,我们先读取了一张名为test.png的图片。接着,我们调用了imageio.imresize()函数,传入原始图片和指定的尺寸(width、height)。函数会自动将原始图片缩放至指定大小。最终,我们把缩放后的图片存入了resized_img变量中。