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