Python,OpenCVでHSV色空間を用いて肌色領域を抽出

プログラミング

はじめに

PythonとOpenCVを使ってカラー画像から肌色領域を抽出する方法を実装。
ソースコードと計算結果を解説します。

動作環境

・PyCharm Community Edition 2018.3.1 x64
・OpenCV 3.4.5.20

HSV色空間とは

HSVとは、色を「色相(Hue)」,「彩度(Saturation)」,「明度(Value・Brightness)」の3要素で表現する方法です。

RGBとの違いとして、RGBは原色の組み合わせで色を表現していますが、HSVは「鮮やかさ」や「明るさ」といった人間が直感的にわかりやすい方法で方法で表現されています。

また、照明条件が変化しても色相には変化が少ないといった特徴を持ちます。
そのため、RGB画像で肌色領域を抽出するよりも安定的な動作が期待されます。

ソースコード

import cv2
import numpy as np

if __name__ == "__main__":
    # define parameter
    HSV_MIN = np.array([0, 30, 60])
    HSV_MAX = np.array([20, 150, 255])

    # read input image
    img = cv2.imread("./image.jpg")

    #convert hsv
    img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    #mask hsv region
    mask_hsv = cv2.inRange(img_hsv, HSV_MIN, HSV_MAX)

    # save image
    cv2.imwrite("mask_hsv.jpg", mask_hsv)

 

結果

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

書籍

画像処理をやってみたいけど何から手をつけて良いかわからない人は是非下で紹介する参考書からスタートしてみることをオススメします。まずはこの三冊の中身を理解出来るように努めましょう!

■OpenCVライブラリを使ってお手軽に画像処理を試したい人向け


詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

画像処理ライブラリであるOpenCVを使ってどのようなことが出来るのかを俯瞰出来る一冊です。また、この本の特徴としては、OpenCVライブラリの使い方を解説しているだけでなく、画像処理の基本概念も詳しく書かれている良書です。

 

■画像処理を基本概念からしっかりと理解したい人向け


ディジタル画像処理[改訂新版]

画像処理エンジニア検定という資格に対応した参考書ですが、画像処理の概念を数式や図を交えてとてもわかりやすく書かれている一冊です。プログラミングのためのソースコード等の解説は一切出てこないですが、理論的な所もしっかりと学びたい人には最適です。現役の画像処理エンジニアも手元に置いておきたい良書です。

 

■実践で画像処理テクニックを使いたい人向け


実践 コンピュータビジョン

画像処理テクニックを実践で使うとどういったことが出来るのかがわかりやすく解説されています。この本では、PILという画像処理ライブラリを使って画像のクラスタリングや画像検索といった実践的な内容をソースコード付きで解説しています。

 

スポンサーリンク


コメント

タイトルとURLをコピーしました