我正在處理 Kaggle.com 上的資料集: https ://www.kaggle.com/sorour/38cloud-cloud-segmentation-in-satellite-images 而我想要做的是結合 3 個灰度影像代表 3 個通道(R, G, B) 到一張自然彩色影像。所以這是我嘗試過的:
r_np = np.array(cv2.imread(red, 0))
g_np = np.array(cv2.imread(green, 0))
b_np = np.array(cv2.imread(blue, 0))
# Add the channels to the final image
final_img = np.dstack([b_np, g_np, r_np]).astype(np.uint8)
# Directory to save
final_img_dir = store_directory "\\" "img" image_id
# Save the needed multi channel image
cv2.imwrite(final_img_dir, final_img)
它的輸出是一張靜止的灰度影像。我的影像格式是 .TIF。先感謝您!
uj5u.com熱心網友回復:
您的代碼中有幾個問題:
首先,您需要匯入模塊:
import numpy as np
import cv2
其次,您使用的是丑陋的清單常量,而不是 OpenCV 免費提供的漂亮、易讀、可維護的常量,而且您還不必要地將您從中獲得的 Numpy 陣列包裝cv2.imread()到 Numpy 陣列中。
最后,您沒有檢查錯誤。
所以,而不是:
r_np = np.array(cv2.imread(red, 0))
考慮:
r_np = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
assert r_np is not None, "ERROR: Error reading red image"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425469.html
