我目前是 python 新手,我想从图像中分别提取 R、G 和 B 帧。
例如,存储我的图像的变量是 img
我想知道的;
我如何制作Rimg = img (:,:,1)
Gimg = img (:,:,2)
Bimg = img (:,:,3)
Ofcource,这些是 MATlab 伪代码,而 Rimg、Gimg 和 Bimg 只是变量。
我目前是 python 新手,我想从图像中分别提取 R、G 和 B 帧。
例如,存储我的图像的变量是 img
我想知道的;
我如何制作Rimg = img (:,:,1)
Gimg = img (:,:,2)
Bimg = img (:,:,3)
Ofcource,这些是 MATlab 伪代码,而 Rimg、Gimg 和 Bimg 只是变量。
麻木风格:
Bimg = img[:,:,0]
Gimg = img[:,:,1]
Rimg = img[:,:,2]
OpenCV 风格:
B,G,R = cv2.split(img)
其他答案是正确的,但这是一个足够常见的操作,单行可以是惯用的:
# Let `im` be a numpy array
r,g,b = im.transpose((2,0,1))
操作员改变周围的transpose
轴,使第一个轴成为通道轴。然后,您可以使用标准 Python 多重赋值来分配给r
、g
和b
.