LoginSignup
1
2

More than 3 years have passed since last update.

前景(人物など)以外の部分は透けるので、背景合成などに使えます。

anjyu3P2A6684_TP_V4.jpg ファイル名

手順

1、マスク画像をつくる。

アップル公式配布のDeepLabv3モデルなど、セグメンテーションモデルをつかってマスク画像を取得します。
こちらの記事など参考にしていただければ。

2、透過画像を作る。

元の画像と同じサイズで透過画像を作ります。
settingAlphaOneの引数では「透過にならない領域」を指定するので、ゼロを指定して全面透過画像を取得します。


let transparentImage = originalCIImage.settingAlphaOne(in: CGRect.zero)

3、合成する。

前景=オリジナル画像、背景=透過画像、マスク画像=残したいオブジェクトのマスク画像、でCIFilterで合成します。

let compositeImage = CIFilter(name: "CIBlendWithMask", parameters: [
    kCIInputImageKey: originalCIImage,
    kCIInputBackgroundImageKey:transparentImage,
    kCIInputMaskImageKey:mask]).outputImage

背景画像を用意してもう一度合成すると、合成画像ができます。
名称未設定1.png
🐣


お仕事のご相談こちらまで
rockyshikoku@gmail.com

Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。

Twitter
Medium

相棒
note

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2