初学者のためのプログラミング学習サイトセグメンテーション[Pythonプログラミング]opencvでセグメンテーション・画像の背景切り抜き2021年12月04日カテゴリ:プログラミングPython今回はopencvを使って画像から人を抜き出して背景を切りとってみました。解説動画はこちら今回は簡易なセグメンテーションです。画像の人の領域を特定して背景と切り分けてみましょう。ライブラリの読み込みです。次に人の画像を用意しましょう。cv2.imread('kuro/kuro2.jpg')img_display(img)今回はこちらの方を用意しました。この画像に対して処理を行っていきましょう。最初は画像にブラー(ぼかし)をかけてみます。texts)こんな感じでぼかされていきますね。ぼかすと背景と物や人の領域がやや滑らかに分かれる感じです。次にグレースケールに加工します。texts)カラー画像を白黒にすると白黒の濃淡は0-255の数値で表せるので閾値を決めて領域を分けることができます。次は閾値を決めて人のシルエットを作ってみましょう。texts)うまくいくかは閾値次第ですが今回は背景と人がくっきり分かれました。このシルエットを使って元の画像を切り取ってみましょう。mask_rgb)img_display(result_img)こんな感じで人と背景を分けて人だけ抽出ができました。背景を削除して物や人の画像を抽出できますが背景が複雑だとうまくいかないです。雑に簡単な方法なのでより精密にセグメンテーションするにはopencvでは限界がありますね。精細に行うなら機械学習などで学習させた領域切り分けを使わないと上手くいかないでしょうね。今回はopnecvを使った簡単な画像のセグメンテーションでした。