問題

在閱讀PNG影象檔案時,我使用opencvskimage測試了輸入過程,並發現輸入影象的形狀不同.導致這些差異的原因是什麼,為什麼skimagePNG檔案生成四個通道?

這是程式碼段

 from skimage.io import imread
image = imread("C:\Desktop\test1.png")
import cv2
img = cv2.imread("C:\Desktop\test1.png")
print("skimage shape: ",image.shape)
print("cv2 shape: ",img.shape)
 

輸出是

 skimage shape:  (247, 497, 4)
cv2 shape:  (247, 497, 3)
 

  最佳答案

OpenCV的imread()預設拋棄了alpha通道(BGRA中的第四個通道).如果您想保持它,您需要使用 IMREAD_UNCHANGED 標誌:

imread_nity Python:cv.IMREAD_nition

如果設定,返回載入的影象(使用alpha通道,否則它被裁剪).

skimage的imread() 沒有這種行為.如果存在,則包含alpha通道:

不同的顏色帶/通道儲存在第三維,這樣的灰度影象是MxN,RGB-image MxNx3和RGBA-image MxNx4。

  相同標籤的其他問題

opencvimage-processingcomputer-visionscikit-image