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学习笔记汇总目录(适合基础入门学习)
电气专业的计算机小白。写博文不容易。如果你觉得本文对你有用,请点个赞支持下,谢谢。