我使用此命令將打開的 cv 影像從 RGB 轉換為灰度:
img = cv2.cvtColor(np.float32(img), cv2.COLOR_BGR2GRAY) # Grayscale image
在此命令之前列印形狀會回傳以下內容:
(64, 128, 3)
在灰度函式之后:
(64, 128)
然而它應該是這樣的:
(64, 128, 1)
誰能解釋這里發生了什么以及如何將影像轉換為正確的格式?因為如果我將此影像傳遞給 Tensorflow,由于輸入形狀錯誤,它會給我一個錯誤。Tensorflow 需要具有以下格式(寬度、高度、通道)的影像。通道對于 rgb 為 3,對于灰度為 1。但是,在我的情況下,轉換為灰度后我沒有任何通道。我不知道為什么
uj5u.com熱心網友回復:
輸入影像是 3 個通道,但灰度只有一個通道。
import cv2
img = cv2.imread("HHH.jpg")
print(f"img.shape={img.shape}")
gray = cv2.cvtColor(np.float32(img), cv2.COLOR_BGR2GRAY) # Grayscale image
print(f"gray.shape={gray.shape}")
輸出:
img.shape=(960, 1280, 3)
gray.shape=(960, 1280)
如果您需要將 (H, W, 1) 維度的影像提供給 TensorFlow,請通過擴展TF 中的維度來更改您的維度:此代碼將一個通道添加到資料的最后一維:
tf.expand_dims(image, -1).shape.as_list()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/451741.html
上一篇:pandas.Series.replace不適用于yfinance
下一篇:numpymatmul不計算矩陣
