白色を透明化するPythonコードを使って
画像の周りの部分を透明化しました.
①RGB画像をAlphaチャンネルを追加した状態で読み込む。
②白色(画素の全てが255)を検索し、Trueなら0(透明)、Falseなら255(不透明)にする。
③画像を保存する。
import cv2
import numpy as np
-1はAlphaを含んだ形式(0:グレー, 1:カラー)
img = cv2.imread('sample.png', -1)
白色のみTrueを返し、Alphaを0にする
img[:, :, 3] = np.where(np.all(img == 255, axis=-1), 0, 255)
画像保存
cv2.imwrite('out.png', img)
今後,保存した’out.png'に対して2値処理を行うなど透明化しなかった部分に着目して処理を行なっていきたいです.しかし2値化をしようとすると透明にしていたはずの白い部分が再び出てきてしまいました.
そもそも透明化した画像(Alphaチャンネルを追加した状態)を処理することはできないのでしょうか.
このような画像に対して処理を行い,最終的に黄色い部分の面積を検出したいです.このままだと上手く面積を検出できないと考え,周りの部分を透明化すれば良いのではないかとしました.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。