形状不可用的 OpenCV 框架

OpenCV frame in unusable shape

我有一个 CNN,它需要输入图像的形状为 [channels, size, size],但是当我使用 imutils videostream 函数获取帧时,我得到的帧的形状为 [size, size, channel]。

使用 numpy reshape 重塑此帧使我的 CNN 无法识别帧中的内容并且无法正确分类任何内容。

有什么方法可以指定我希望我的相框的形状吗?或者以保留图像的方式重塑框架?

from imutils.video import VideoStream
import time
vs = VideoStream(src=1).start()
time.sleep(2.0)
frame = vs.read()
print(frame.shape)  # output: (480, 640, 3) -> I need (3, 480, 640)

我认为您要查找的函数是转置。假设 frame 是 一个 numpy 数组,你可以使用:

frame_cnn = frame.transpose([2,0,1])