Rembgで画像から背景を削除
Rembgで画像から背景を削除 先日、SNSで見た画像の背景を削除して切り抜くPythonのライブラリを見つけたので早速試してみました。普段業務で画像の背景を処理することも多くソフトを使って背景を削除していたので、Pyt […]
Filter by Category
Rembgで画像から背景を削除 先日、SNSで見た画像の背景を削除して切り抜くPythonのライブラリを見つけたので早速試してみました。普段業務で画像の背景を処理することも多くソフトを使って背景を削除していたので、Pyt […]
Pythonのenumerate関数でfor文のインデックスを取得 enumerate関数を使うとPythonでforを書くときに処理毎にカウントアップしたり、値を代入したりといった処理が簡単にできるので便利です。 実際 […]
先日、SNSで見た画像の背景を削除して切り抜くPythonのライブラリを見つけたので早速試してみました。普段業務で画像の背景を処理することも多くソフトを使って背景を削除していたので、Pythonで背景を削除できたら自動化できそうだなと思いました。
試しに今回はルービックキューブと泡盛の瓶の背景を削除してみましたが、Photoshopなどの画像編集ソフトを使って背景を削除したのと変わらない(言われても分からない)クオリティで背景を削除できました。実行時間も一枚あたり数秒で完了するので、大量の画像を処理するときはソフトを使うよりもこのライブラリを使ったほうが大幅に時間短縮が可能です。
GitHubにあるサンプルコードは画像を指定して一度に一枚しか背景処理ができませんが、変更を加えてフォルダ内の全画像をまとめて背景を削除できるようにしました。その際に進捗が分かるようにtqdmで処理の進捗を表示させています。
ルービックキューブの背景処理
波照間島の幻の泡盛「泡波」の背景処理
PC: MacBook Pro (14, 2021)
OS: macOS Monterey 12.0.1
Python: 3.9.1
import glob
from tqdm import tqdm
from rembg import remove
from PIL import Image
ORIGINAL_DIR = "original/"
OUTPUT_DIR = "convert/"
lst = glob.glob(ORIGINAL_DIR + "*")
for i, l in enumerate(tqdm(lst)):
input = Image.open(l)
output = remove(input)
output.save(OUTPUT_DIR + l.split('/')[1])
import glob
from tqdm import tqdm
from rembg import remove
from PIL import Image
ライブラリをインポート
ORIGINAL_DIR = "original/"
OUTPUT_DIR = "convert/"
背景を切り抜く画像を入れるフォルダと切り抜いた画像を保存するディレクトリ名を指定
lst = glob.glob(ORIGINAL_DIR + "*")
背景を切り抜く画像を取得(*でORIGINAL_DIR内の全ファイルを指定)
for i, l in enumerate(tqdm(lst)):
リストで取得した全データを一件づつ処理
tqdmで処理の進捗を表示
input = Image.open(l)
画像を開く
output = remove(input)
画像の背景を削除
output.save(OUTPUT_DIR + l.split('/')[1])
背景を削除した画像を保存(splitで/の後の画像名を保存する画像名に指定)
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません