“毛星雲OpenCV3程式設計入門之python實現”第七篇影象拆分、合併
阿新 • • 發佈:2018-12-14
5.3影象拆分、合併
python程式碼:
# -*- coding: utf-8 -*-
import cv2
import numpy as np
srcImage = cv2.imread("E:/Study/python/OpenCV_study/img/7.jpg")
print(srcImage.shape)
print(srcImage[0][0][0])
print(srcImage[0][1][0])
print(srcImage[0][2][0])
print(srcImage[0][3][0])
print(srcImage[0][4][0])
print(srcImage[:10, :5, 0])
( B, G, R) = cv2.split(srcImage) # 分離元原影象通道,得到單通道灰度影象,為灰白色
print(B.shape)
print(B[0][0])
cv2.imshow("srcImage", srcImage)
cv2.imshow("B", B) # 灰度圖,灰白色
cv2.imshow("G", G) # 灰度圖,灰白色
cv2.imshow("R", R) # 灰度圖,灰白色
print(type(B[0][0])) # 驗證資料型別,為下面構建值為0的矩陣做條件
zeros = np.zeros(srcImage.shape[:2], dtype= np.uint8) # 構造值為0的二維矩陣,目的為了與B、G、R合併,得到B色、G色、R色影象
print(type(zeros[0][0])) # 驗證構建矩陣資料型別
B[:100]=0 # 分離後的通道,操作時,並不影響原影象
B_new = cv2.merge((B, zeros, zeros)) # 顏色通道合併,得到B色影象,將G、R值填充為0。三通道影象,藍色
G_new = cv2.merge([zeros, G, zeros]) # 顏色通道合併,得到G色影象,將B、R值填充為0。三通道影象,綠色
R_new = cv2.merge([zeros, zeros, R]) # 顏色通道合併,得到R色影象,將B、G值填充為0。三通道影象,紅色
srcImage = cv2.merge((B, G, R)) # 分離後的通道,操作後,重新合併為原影象,才能達到修改原影象的作用
print(B_new.shape)
print(G_new.shape)
print(R_new.shape)
cv2.imshow("srcImage1", srcImage)
cv2.imshow("B_new", B_new)
cv2.imshow("G_new", G_new)
cv2.imshow("R_new", R_new)
cv2.waitKey(0)