![](/img/trans.png)
[英]How to convert RGB PIL image to numpy array with 3 channels?
[英]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]
但它返回一個二進制圖像。
如果你使用
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.