Python+OpenCV學習(2)---影象的合併與拆分
阿新 • • 發佈:2019-01-07
利用python學習OpenCV,個人感覺比較方便。函式的形式與C++基本相同,所以切換過來還是比較好的,對於像我這種對python不太熟練的人,使用python的整合開發環境PyCharm進行學習,可以設定斷點除錯,有助於我這類初學者理解掌握。
下面是利用python進行影象拆分合並的基本程式碼:
# coding=utf-8 __author__ = 'Microcosm' print("影象通道拆分") import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread("lena.jpg") # 獲取影象的尺寸及通道數 width, height, ch = img.shape print(width, height, ch) print img.size # 列印畫素數目 # 彩色通道的拆分與合併,速度較慢 b, g, r = cv2.split(img) img = cv2.merge([b,g,r]) # 採用類似 matlab 中的下標索引方式,速度比較快 # 分離彩色通道,順序是BGR,與 matlab 不同 B = img[:, :, 0] G = img[:, :, 1] R = img[:, :, 2] # 調整RGB通道的順序 img_RGB = img.copy() img_RGB[:, :, 0] = R img_RGB[:, :, 1] = G img_RGB[:, :, 2] = B # 採用類似 matlab 顯示多個座標軸的形式並行顯示,比較方便 # 由於 matlab 是按照RGB順序顯示的,所以需要將原影象的順序重調一下 plt.subplot(231), plt.imshow(img,'gray'), plt.title("img_BGR") plt.subplot(232), plt.imshow(img_RGB, "gray"), plt.title("Img_RGB") plt.subplot(233), plt.imshow(B, "gray"), plt.title("B") plt.subplot(234), plt.imshow(G, "gray"), plt.title("G") plt.subplot(235), plt.imshow(R, "gray"), plt.title("R") plt.show()
執行結果為