opencv 学习笔记6:通道的拆分与合并

    技术2025-02-28  10

    python + opencv

    通道拆分

    原始方法 import cv2 img=cv2.imread(‘图像名’) b=img[:,:,0] g=img[:,:,`1] r=img[:,:,2]

    新的方法 import cv2 img=cv2.imread(‘图像名’) b,g,r=img.split(img)

    import cv2 import numpy as np img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 b,g,r=cv2.split(img) cv2.imshow("b",b) cv2.imshow("g",g) cv2.imshow("r",r) cv2.waitKey(0) cv2.destroyAllWindows()

    可以只拆分一个通道 添加下标,0,1,2 b=cv2.split(img)[0]

    通道合并

    方法:cv2.merge([b,g,r])

    算例 使用不同顺序合并,结果不同。

    import cv2 import numpy as np img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 b,g,r=cv2.split(img) bgr=cv2.merge([b,g,r]) rgb=cv2.merge([r,g,b]) cv2.imshow("bgr",bgr) cv2.imshow("rgb",rgb) cv2.waitKey() cv2.destroyAllWindows()

    让b通道去合并两个0的通道

    import cv2 import numpy as np img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 rows,cols,chn=img.shape b=cv2.split(img)[0] g = np.zeros((rows,cols),dtype=img.dtype) r = np.zeros((rows,cols),dtype=img.dtype) m=cv2.merge([b,g,r]) cv2.imshow("merge",m) cv2.waitKey() cv2.destroyAllWindows()

    结果: 同理,只取g通道,另外两个为0。得到的应是纯绿 和纯红

    总目录链接: python3+opencv学习笔记汇总目录(适合基础入门学习)

    电气专业的计算机小白。写博文不容易。如果你觉得本文对你有用,请点个赞支持下,谢谢。

    Processed: 0.008, SQL: 9