擅长:python、mysql、java
<p>OpenCV中的每个图像都是三维张量,最后一个维度是通道数,通常为3。将它们沿着另一个新的维度叠加需要一个4维张量。在</p>
<pre><code>W, H, n = 300, 200, 5
num_channels = 3
# shape is (height, width, channels)
im = np.zeros((H, W, num_channels), dtype=np.uint8) # analogue of cv2.imread('test1.jpg')
images = [np.zeros_like(im) for i in range(5)]
# here goes the interesting part
meta_image = np.stack(images)
print(meta_image.shape) # (5, 200, 300, 3) == (n, H, W, num_channels)
# the top most image can be accessed as a slice
top_img = meta_image[:, 0, ...]
cv2.imshow("top", top_img)
# the bottom one
bottom_img = meta_image[:, H-1, ...]
cv2.imshow("bottom", bottom_img)
print(top_img.shape) # (5, 300, 3) == (n, W, num_channels)
# in case you want something like mean over this H slices:
some_mean_slice = np.mean(meta_image, axis=1).astype(np.uint8)
print(some_mean_slice.shape) # (5, 300, 3)
</code></pre>