Python画像にアルファチャンネルを追加してみる。

python コンピュータ
python
#!/usr/bin/env python3
# coding: utf8

# 画像にアルファチャンネルを追加

import cv2
import numpy as np

# 画像ファイルを読み込む(24bitカラー)
im = cv2.imread('logo.png', cv2.IMREAD_COLOR)

# RGBを各チャンネルに分離
ch_b, ch_g, ch_r = cv2.split(im[:,:,:3])

# 画像ファイルを読み込み(8bitグレースケール)
ch_a = cv2.imread('edge.png', cv2.IMREAD_GRAYSCALE)

# 輪郭を出力

# 各チャンネルを結合
dst = cv2.merge((ch_b, ch_g, ch_r, ch_a))

# 結果を保存
cv2.imwrite('rgba.png', dst)

# 輪郭以外を出力

# アルファチャンネルを反転し各チャンネルを結合
dst = cv2.merge((ch_b, ch_g, ch_r, cv2.bitwise_not(ch_a)))

# 結果を保存
cv2.imwrite('rgba2.png', dst)

結果:
輪郭部分

輪郭以外

元画像をRGBの各チャンネルに分離し別途読み込んだアルファチャンネルと合わせて結合しています。
アルファチャンネルをビット反転させることで透明・不透明を逆転させ、輪郭部分とそれ以外の画像を作成しています。

コメント