以前画像にアルファチャンネルを追加するPythonスクリプトを作成してみましたが、最近OpenCVのcvtColorでRGBAに変換してあげるほうが簡単なことに気が付きました。
import glob
import os.path
import numpy as np
import cv2
path = "./*.png"
for x in glob.glob(path):
name, ext = os.path.splitext(os.path.basename(x))
dirname = os.path.dirname(x)
outpath = os.path.join(dirname, (name + "-rgba" + ext))
inpath = x
src = cv2.imread(inpath)
dst = cv2.cvtColor(src, cv2.COLOR_RGB2RGBA)
cv2.imwrite(outpath, dst)
cv2.imread(inpath)カラー画像、グレースケール画像のどちらでもRGBの24bitで読み込まれます。
さらにcv2.cvtColor(src, cv2.COLOR_RGB2RGBA)でRGBからアルファチャンネル付きのRGBAに変換してあげるだけの処理になります。
さらにcv2.cvtColor(src, cv2.COLOR_RGB2RGBA)でRGBからアルファチャンネル付きのRGBAに変換してあげるだけの処理になります。
コメント