Laplacianフィルタで輪郭を抽出してみました。
こちらの画像をアルファチャンネルとして元の画像と重ね合わせてみます。
Python画像からLaplacianフィルタで輪郭抽出をしてみる
当サイトのロゴをLaplacianフィルタにかけてみました。#!/usr/bin/env python3# coding: utf8# Laplacianフィルタで輪郭抽出import cv2import numpy as np# 画像ファ...
こちらの画像をアルファチャンネルとして元の画像と重ね合わせてみます。
#!/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の各チャンネルに分離し別途読み込んだアルファチャンネルと合わせて結合しています。
アルファチャンネルをビット反転させることで透明・不透明を逆転させ、輪郭部分とそれ以外の画像を作成しています。
コメント