Splitting and Merging Channels with Python-OpenCV
Last Updated :
03 Jan, 2023
In this article, we will learn how to split a multi-channel image into separate channels and combine those separate channels into a multi-channel image using OpenCV in Python.
To do this, we use cv2.split() and cv2.merge() functions respectively.
Image Used:
Splitting Channels
cv2.split() is used to split coloured/multi-channel image into separate single-channel images. The cv2.split() is an expensive operation in terms of performance(time). The order of the output vector of arrays depends on the order of channels of the input image.
Syntax: cv2.split(m[, mv])
Parameters:
- m: Input multi-channel array
- mv: Output vector of arrays
Example:
Python3
import cv2
image = cv2.imread( 'img.jpg' )
cv2.imshow( 'Original_Image' , image)
b,g,r = cv2.split(image)
cv2.imshow( "Model Blue Image" , b)
cv2.imshow( "Model Green Image" , g)
cv2.imshow( "Model Red Image" , r)
cv2.waitKey( 0 )
|
Output:
Merging Channels
cv2.merge() is used to merge several single-channel images into a colored/multi-channel image.
Syntax: cv2.merge(mv[, dst])
Parameters:
- mv: Input vector of matrices to be merged. All matrices must have same size.
- dst: Output multi-channel array of size mv[0]. Number of channel will be equal to total no. of channel in matrix array.
Example:
Python3
import cv2
image = cv2.imread( "img.jpg" )
b, g, r = cv2.split(image)
cv2.imshow( "Model Blue Image" , b)
cv2.imshow( "Model Green Image" , g)
cv2.imshow( "Model Red Image" , r)
image_merge = cv2.merge([r, g, b])
cv2.imshow( "RGB_Image" , image_merge)
cv2.waitKey( 0 )
|
Output:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...