簡體   English   中英

如何將 3 個通道轉換為 RGB 圖像?

[英]How to convert 3 channels as a RGB image?

我將 RGB 圖像拆分為 R、G、B 通道。 在這些通道上處理后,我需要將它們連接起來。 我搜索了這個但找到了任何東西,所以我用 for 循環來做。 但效果不佳。

B,G,R = cv2.split(image)

#some process is here

#result after concatenate
res = np.zeros((image.shape))

for i in range(image.shape[0]):
    for j in range(image.shape[1]):
        res[i,j,0]= B1[i,j]

for i in range(image.shape[0]):
    for j in range(image.shape[1]):
        res[i,j,1]= G1[i,j]

for i in range(image.shape[0]):
    for j in range(image.shape[1]):
        res[i,j,2]= R1[i,j]

但它返回一個二進制圖像。

不要寫循環,改用merge()

就像這樣簡單:

bgr = cv2.merge([B,G,R])

如果你使用

res = np.zeros_like(image)

您將確保獲得相同的dtype並且您的代碼可能會起作用。

此外,盡量避免使用for循環,它們速度慢且容易出錯。 要么cv2.merge()建議使用cv2.merge() ,要么使用 Numpy:

bgr = np.dstack((B,G,R))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM