Python-OpenCVでグレイスケール画像をカラーに変換【GRAY2RGBA一括変換】

pythonコンピュータ
python

OpenCVのcvtColorを使って8bitのグレースケール画像を32bitのRGBAにフォーマットを変換します。

元がグレースケールの8bitですのでRGBAに変換しても見た目はグレースケールのままです。

import cv2
import numpy as np
import os
import glob

def filter(src_file, dst_file):
    print(src_file, dst_file)

    src = cv2.imread(src_file, 0)

    tmp = src.copy()

    dst = cv2.cvtColor(tmp, cv2.COLOR_GRAY2RGBA)
    print(dst.shape)
    cv2.imwrite(dst_file, dst)

if __name__ == '__main__':
    list = ['対象ディレクトリ']

    for src_dir in list:
        dst_dir = src_dir

        for s in sorted(glob.glob(os.path.join(src_dir, '*.png'))):
            dn = os.path.dirname(s)
            fn = os.path.basename(s)
            bn, ext = os.path.splitext(fn)
            d = os.path.join(dst_dir, bn + '.png')

            filter(s, d)
ディレクトリ内に複数の対象画像ファイルを想定したスクリプトになっています。スクリプト内の’対象ディレクトリ’を実行環境に合わせて変更してください。また、対象ファイルの種類(拡張子)はpngにしています。こちらも目的に合わせて変更することになります。

コメント