rembgで背景を削除した画像を編集して元の画像と再合成
rembgで背景を削除した画像を編集して元の画像と再合成 YouTubeにアップロードしたrembgで背景を削除する説明動画にコメントをいただいたので、rembgを使った画像処理の続編です。rembgで背景を削除した画像 […]
Filter by Category
rembgで背景を削除した画像を編集して元の画像と再合成 YouTubeにアップロードしたrembgで背景を削除する説明動画にコメントをいただいたので、rembgを使った画像処理の続編です。rembgで背景を削除した画像 […]
Rembgで画像から背景を削除 先日、SNSで見た画像の背景を削除して切り抜くPythonのライブラリを見つけたので早速試してみました。普段業務で画像の背景を処理することも多くソフトを使って背景を削除していたので、Pyt […]
YouTubeにアップロードしたrembgで背景を削除する説明動画にコメントをいただいたので、rembgを使った画像処理の続編です。rembgで背景を削除した画像をOpenCVとPillowを使って白黒画像に変換して元の画像と再合成します。
rembgで背景を削除した画像からマスクを作成します。次にオリジナル画像を白黒に変換します。最後に白黒画像に変換した画像をマスク処理(切り抜き)して元の背景と合成します。
白黒画像に変換する部分を左右反転や色調補正などの他の処理に書き換えると表現の幅が広がります。
コードはGitHubリポジトリにあげています。
PC: MacBook Pro (14, 2021)
OS: macOS Monterey 12.0.1
Python: 3.9.1
from rembg import remove
from PIL import Image
import cv2
original_img_path = "images/IMG_5358.png"
input = Image.open(original_img_path)
output = remove(input)
output.save("combine/remove_bg.png")
mask_img_path = "combine/remove-bg.png"
mask_a = cv2.imread(mask_img_path, cv2.IMREAD_UNCHANGED)
mask_a = mask_a[:, :, 3]
cv2.imwrite("combine/mask.png", mask_a)
gray_img = cv2.imread(original_img_path)
gray_img = cv2.cvtColor(gray_img, cv2.COLOR_BGR2GRAY)
gray_img = cv2.cvtColor(gray_img, cv2.COLOR_GRAY2BGR)
cv2.imwrite("combine/gray.png", gray_img)
gray_img_path = "images/gray.png"
mask_path = "images/mask.png"
paste_img = Image.open(gray_img_path)
base_img = Image.open(original_img_path)
mask = Image.open(mask_path)
im = Image.composite(paste_img, base_img, mask)
im.save("combine/composite.png")
from rembg import remove
from PIL import Image
import cv2
ライブラリのインポート
original_img_path = "images/IMG_5358.png"
オリジナル画像のパスを指定
input = Image.open(original_img_path)
画像を開くoutput = remove(input)
rembgで背景を削除output.save("combine/remove_bg.png")
画像を保存
mask_img_path = "combine/remove-bg.png"
背景を削除した画像のパスを指定mask_a = cv2.imread(mask_img_path, cv2.IMREAD_UNCHANGED)
画像を開くmask_a = mask_a[:, :, 3]
アルファチャンネルを取得cv2.imwrite("combine/mask.png", mask_a)
画像を保存
gray_img = cv2.imread(original_img_path)
白黒画像に変換するオリジナル画像のパスを指定gray_img = cv2.cvtColor(gray_img, cv2.COLOR_BGR2GRAY)
白黒画像(グレースケール)に変換gray_img = cv2.cvtColor(gray_img, cv2.COLOR_GRAY2BGR)
グレースケールの画像をBGRに戻すcv2.imwrite("combine/gray.png", gray_img)
画像を保存
gray_img_path = "images/gray.png"
mask_path = "images/mask.png"
画像のパスを指定paste_img = Image.open(gray_img_path)
base_img = Image.open(original_img_path)
mask = Image.open(mask_path)
画像を開くim = Image.composite(paste_img, base_img, mask)
白黒、オリジナル画像、マスクを合成(上が白黒に変換したマスク処理したい画像、下がオリジナル画像)im.save("combine/composite.png")
画像を保存
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません