1. 程式人生 > >“毛星雲OpenCV3程式設計入門之python實現”第七篇影象拆分、合併

“毛星雲OpenCV3程式設計入門之python實現”第七篇影象拆分、合併

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)