小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python+opencv圖像處理(三)

 pythonjava學(xué)習(xí) 2021-04-06

彩色圖像拆分與合并

外面的世界很精彩,很繽紛,很鮮艷,很五顏六色......

通常我們拍攝的圖片都是彩色的,即RGB圖像。自然界中的絕大多數(shù)顏色也都可以看作是由紅(Red)、綠(Green)、藍(lán)(Blue)三種顏色組合而成。

在圖像處理中把R、G、B看作是三個通道,可以把一幅彩色圖像的三個通道拆分出來,也可以將拆分出來的三個通道合并回去。

1、RGB拆分三通道

如下圖所示,第一張為美女lena的原圖,后面三張是拆分過的三通道的圖像。

你會發(fā)現(xiàn),怎么顯示出來都是灰度圖像呢,沒錯,實(shí)驗(yàn)做出來就是這個樣子的。

源代碼如下:

import cv2

src = cv2.imread('E:/image/le.jpg')

b,g,r=cv2.split(src)

cv2.imshow("src",src)

cv2.imshow("b",b)

cv2.imshow("g",g)

cv2.imshow("r",r)

cv2.waitKey(0)

第一行,導(dǎo)入opencv

第二行,讀入圖片

第三行,拆分三通道

后面四行,顯示源圖片,三通道的圖片

從代碼你會發(fā)現(xiàn),其實(shí)就是用了opencv的函數(shù)split(),來對彩色圖像進(jìn)行拆分。

但是要注意一點(diǎn)哦,拆分出來的三通道順序是b,g,r,而不是我們認(rèn)為的順序R,G,B。

2、融合各通道顏色

上圖好像不太好區(qū)分到底哪張圖片是哪個通道的,來看看下圖吧。

   各通道顏色是不是很清晰,很明顯,看一眼便知。

   但這只是合并進(jìn)去的顏色哦,看代碼可知。

import cv2

import numpy as np

src = cv2.imread('E:/image/le.jpg')

b,g,r=cv2.split(src)

zeros = np.zeros(src.shape[:2],dtype="uint8")

b=cv2.merge([b,zeros,zeros])

g=cv2.merge([zeros,g,zeros])

r=cv2.merge([zeros,zeros,r])

cv2.imshow("src",src)

cv2.imshow("b",b)

cv2.imshow("g",g)

cv2.imshow("r",r)

第一行,導(dǎo)入opencv

第二行,導(dǎo)入numpy包,numpy是比較著名的一個包,常用于科學(xué)計(jì)算等

第三行,讀入圖片

第四行,拆分圖片

第五行,創(chuàng)建與源圖片大小相同的數(shù)組,全部設(shè)置為0

第六、七、八行,是融合三通道回RGB圖片,因?yàn)橹幌敕謩e顯示各通道的圖片,所以除了要顯示的通道外,其余兩個通道均用0

后四行,顯示圖片

3、彩色圖像的融合

上幅圖片其實(shí)已說明了如何進(jìn)行三通道的融合,就是用merge()函數(shù)。

import cv2

src = cv2.imread('E:/image/le.jpg')

b,g,r=cv2.split(src)#拆分

dst=cv2.merge((b,g,r))#融合

cv2.imshow("src",src)

cv2.imshow("dst,dst)

上述代碼比較簡單,先將源圖片進(jìn)行拆分,再對其進(jìn)行融合,即要得到下面的結(jié)果,可以看出,兩張圖片是一樣一樣的。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多