img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1) # 讀入完整圖片,見下面解釋 img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), 0) # 讀成灰度 img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), 1) # 讀成彩圖
其中cv2.imdecode后面的flag -1應該是和cv2.imread一樣的。
使用函數cv2.imread(filepath, flags)讀入一幅圖片:
filepath: 要讀入圖片的路徑。
flags: 讀入圖片的標志:
cv2.IMREAD_UNCHANGED(-1): 顧名思義,讀入完整圖片,包括alpha通道。如果數據不含alpha通道則灰圖讀成(H, W),彩圖讀成(H, W, 3)。
cv2.IMREAD_GRAYSCALE(0): 讀入灰度圖片,形狀為(H, W)。彩圖也讀成灰的形狀。
cv2.IMREAD_COLOR(1): 默認參數, 讀入一幅彩色圖片,忽略alpha通道, 形狀為(H, W, 3)。灰圖也讀成彩的形狀。
有alpha通道的圖片還沒試驗,不過看來讀成-1比較穩妥。
參考:
https://www.cnblogs.com/come-on-baby/p/11386909.html
Python 3.x 使用 opencv 無法讀取中文路徑如何解決? - 冰不語的回答 - 知乎 https://www.zhihu.com/question/67157462/answer/251754530