eightban's memo

残しておきたい記事をまとめてみました。このブログに書いてあるドキュメントやブログで配布しているファイルの使用によって発生するいかなる損害に対してもこのブログの管理者は責任を負いません。使用する場合は自己責任のもとに使用してください。

Python 画像

背景を透過する方法

更新日:

AIで背景を透過する

remove.bg

Webサービスです

https://www.remove.bg/ja

clipdrop

ウェブサービスです

https://clipdrop.co/ja/remove-background

rembg

Pythonプログラムです。一括で行うにはこちらが便利です。

GitHub - danielgatis/rembg: Rembg is a tool to remove images background

pip install rembg # for library
pip install rembg[cli] # for library + cli

pip install rembg[gpu] # for library
pip install rembg[gpu,cli] # for library + cli

rembg p -a -m u2netp path/to/input path/to/output

rembg i -m u2net_custom -x '{"model_path": "~/.u2net/u2net.onnx"}' path/to/input.png path/to/output.png

使用可能なモデル

  • u2net : 一般的なユースケース向けの事前トレーニング済みモデル。
  • u2netp : u2net モデルの軽量バージョン。
  • u2net_human_seg : 人間のセグメンテーションのための事前トレーニング済みモデル。
  • u2net_cloth_seg:人間の肖像画から布を解析するための事前トレーニング済みモデル。ここでは、服は上半身、下半身、全身の3つのカテゴリに解析されます。
  • silueta :u2netと同じですが、サイズは43Mbに縮小されています。
  • isnet-general-use 一般的なユースケース向けの新しい事前トレーニング済みモデル。
  • isnet-anime:アニメキャラクターの高精度セグメンテーション。
  • SAM : あらゆるユース ケースに対応する事前トレーニング済みのモデル。

Windowsでモデルファイルを指定する例

rembg p -a -m u2net_custom -x "{""model_path"" : ""./notebooks/model/.u2net/u2net.onnx""}" ./notebooks/input_folder ./notebooks/output_folder

transparent-background

動画も対応しています

https://github.com/plemeri/transparent-background

pip install transparent-background

transparent-background --source [SOURCE] --dest [DEST] --threshold [THRESHOLD] --type [TYPE] --ckpt [CKPT] --mode [MODE]  (--fast) (--jit)
transparent-background --source  path/to/img/folder  --dest path/to/output

https://github.com/plemeri/InSPyReNet/blob/main/docs/model_zoo.md

ペイント3D

マジック選択すると背景が同じ色でなくても透過することができます。ただしあまり賢くないので切り取りたい部分を後で線を引いて指定したり不要な部分を線を引いて消したりしなければなりません。Windowsの標準のソフトです

同じような色でトリミングする

手軽に透明png 透過png簡単作成フリーソフト

Windowsアプリです

https://www.officedaytime.com/toumei/

GIMP

メニューバー「ツール」→「選択ツール」→「ファジー選択」
透明にしたい画像の背景をクリックすると、背景色に似た部分が選択されます。
メニューバー「レイヤー」→「透明部分」→「色を透明度に」
OKを押すと背景が透明になります。

ImageMagick

convert.exe  @input.png ^
  -alpha set ^
  -background none ^
  -channel RGBA ^
  -fill '#00000000' ^
  -fuzz 5% ^
    -draw 'alpha 1,1 floodfill' ^
  @output.png

アルファチャンネルについて

背景を透過しても実際には色が残っています。アルファチャンネルをオフにすると色が出てきます。

C:\ImageMagick\convert @e.png -alpha off @e3.png

背景をクリアにしておいた方が良いです

XnConvert を使って透明なピクセルをクリア または

C:\ImageMagick\convert @e.png -background none -alpha Background @e2.png

白黒のアルファチャンネルのマスクを作るには

C:\ImageMagick\convert @e.png -channel matte -separate +matte  @e4.png
C:\ImageMagick\convert @e.png -alpha extract  @e5.png

参考

Masks -- ImageMagick Examples

XnConvertでマスク画像を作る

チャンネルを抽出選んでからアルファ値

-Python, 画像

Copyright© eightban's memo , 2024 All Rights Reserved Powered by STINGER.