最近用opencv做中心線提取,保存的為16bit深度的灰度圖片,但使用imread()讀入的圖像都是8bit的GBR圖像。
造成這個問題的原因主要還是自己沒有仔細閱讀API函數的參數說明。
1 imread()參數說明 2 cv2.IMREAD_UNCHANGED = -1, //返回原通道原深度圖像 3 cv2.IMREAD_GRAYSCALE = 0, //返回單通道(灰度),8位圖像 4 cv2.IMREAD_COLOR = 1, //返回三通道,8位圖像,為默認參數 5 cv2.IMREAD_ANYDEPTH = 2, //返回單通道圖像。如果原圖像深度為16/32 位,則返回原深度,否則轉換為8位 6 cv2.IMREAD_ANYCOLOR = 4, //返回原通道,8位圖像。
所以在導入圖像路徑后,后一個參數要說明導入圖像的類型。選擇cv2.IMREAD_ANYDEPTH/2作為第二個參數,
就能夠返回原來保存的圖片的深度。