我將 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]
但它回傳一個二進制影像。
uj5u.com熱心網友回復:
不要寫回圈,改用merge()。
就像這樣簡單:
bgr = cv2.merge([B,G,R])
uj5u.com熱心網友回復:
如果你使用
res = np.zeros_like(image)
您將得到相同的保證,dtype并且您的代碼可能會起作用。
此外,盡量避免使用for回圈,它們速度慢且容易出錯。無論是使用cv2.merge()由@berak,或使用NumPy的建議:
bgr = np.dstack((B,G,R))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/322397.html
上一篇:在影像上測量和標記長度
下一篇:專案問題,求圖片處理建議
