【Python/OpenCV】写真のアニメ絵化

Python版OpenCVで写真をアニメ絵風に加工する方法をソースコード付きで解説します。

写真のアニメ絵化

Python版OpenCVの空間フィルタ処理などを組み合わせると写真をアニメ絵化できます。
大まかな処理手順は以下の通りです。

説明
Cannyアルゴリズムで輪郭画像の作成
入力画像の減色処理を行う(領域分割 or K平均法など)
入力画像から輪郭画像を引く(輪郭部分が黒くなる)

【ソースコード】Python3 + OpenCV

サンプルプログラムのソースコードです。

単純に減色処理


領域分割で減色


cv2.pyrMeanShiftFilteringメソッドは、平均値シフト法で領域分割します。
領域分割は、近傍の画素の輝度値(色)が類似している場合に同じ領域に属すると判定するものです。同じ領域にある全ての画素は、全体の平均値を画素値とします。これを行うことで、写真がフラットになりアニメ絵っぽくなります。

k-means法で減色


■入力画像(左)と出力画像(右)

【Python版OpenCV超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

コメント