我有一个图像,想在 python 中使用 CV2 将它分成三个 RGB 通道图像。
我还想要好的文档,我可以在其中找到 openCV 的所有功能,因为我对 OpenCV 完全陌生。
我有一个图像,想在 python 中使用 CV2 将它分成三个 RGB 通道图像。
我还想要好的文档,我可以在其中找到 openCV 的所有功能,因为我对 OpenCV 完全陌生。
cv2.imread
这就像使用然后使用加载图像一样简单cv2.split
:
>>> import cv2
>>> import numpy as np
>>> img = cv2.imread("foo.jpg")
>>> b,g,r = cv2.split(img)
OpenCV 文档可从docs.opencv.org 获得
如文档教程中所述,如果您不想在所有通道上操作但只操作一个/两个,则 cv2.split() 在性能(时间)方面是一项代价高昂的操作,因此首选 numpy 索引:
import cv2
import numpy as np
img = cv2.imread("foo.jpg")
b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]
请记住,opencv 将图像读取为 BGR 而不是 RGB
编辑: @Mitch McMabers,感谢您指出这一点。如果您只想单独处理一个/两个通道,请使用此方法以获得最大效率。如果您想在所有三个频道上进行操作,请使用 cv2.split() 访问频道,如@jabaldeno 的回答中所述。