使用 imageio 使用网络摄像头捕获时更改图像大小

Changing image size while capturing using webcam using imageio

我尝试在每次函数调用时捕捉图像

import imageio as iio
camera = iio.get_reader("<video0>")
screenshot = camera.get_data(0)
plt.imsave(filename, screenshot)
camera.close()

我可以保存图像,但图像大小有时是 960540,有时是 1280720。

我浏览了 imageio 的文档,但没有找到任何属性来设置它的形状。我一直想要固定形状的图像。

我试过 OpenCV,它有自己的局限性w.r.t我的要求。

所以请仅在此包中提出一些建议。

谁能帮忙。

您的评论明确表示您希望在整个视频的持续时间内保持分辨率一致。由于 imageio 不提供调整大小的操作,我建议您使用 skimage 来处理该部分。

import imageio as iio
import matplotlib.pyplot as plt
from skimage.transform import resize

camera = iio.get_reader("<video0>")

filename = "experiment_"

# randomly set to 30 frames for this example
for i in range(0, 30):
    screenshot = camera.get_data(i)
    # skimage resize function here
    screenshot = resize(screenshot, (1280, 720))
    final_filename = str(i) + ".jpg"
    plt.imsave(filename+final_filename, screenshot)
camera.close()