みなさんこんにちは!
最近画像コンペに取り組んでいます。
その中でAlbumentationによる画像拡張がうまくいかず「Axes don’t match array」というエラーに陥ってしまいました。
その時の原因と解決方法をまとめておきます。
原因
今回扱っていた画像はグレースケール(1-channel)の画像だったのですが、AlbumentationはRGBの画像を前提としているということで、チャンネル数が合わずエラーになっていました。
なので今回はAugumentationの前にOpenCVでグレースケールの画像をRGBに変換して実行したところエラーを回避することができました。
Pythonコード
# 画像変換用
import cv2
# 画像読み込み
img = Image.open(path)
# 配列に変換
img = np.array(img)
# グレースケールをRGBに変換
img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
# Augumentation
img = self.transform(img) # 関数名適当
参考になればと思います!
それでは。
コメント