【OpenCV】検出した顔画像部分を切り出す方法【Python】
OpenCV を使って、Python で画像の中から顔部分を切り出したときのメモです。
顔部分の検出については、以前に記事にまとめたので、よかったら参考にしてください。
【OpenCV】画像の顔部分を検出する方法【Python】
今回は、検出した顔部分を切り取って、保存します。
用いた画像は、前回同様「Lenna」を使っています。
OpenCV での画像の x座標, y座標の表し方を簡単にまとめます。
画像の左上の頂点座標を(0, 0)とし、横(右)にいくほど x座標の値が大きくなり、縦(下)にいくほど y座標の値が大きくなります。
座標値は全て正の値となります。
出典:https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b
画像の切り出す範囲は、img[]メソッドを使って、x軸とy軸それぞれ指定します。
「:」は範囲を指定する「~」に置き換えると意味が分かりやすくなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import cv2 # カスケード分類器の読み込み face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # イメージファイルの読み込み img = cv2.imread('lena_std.tif') # 顔を検知 face = face_cascade.detectMultiScale(img) # [[217 201 173 173]] print(face) # 検出した顔部分を切り出す for(x, y, w, h) in face: trim = img[y:y+h, # y軸の範囲 x:x+w] # x軸の範囲 # 切り取り処理後の画像を保存 cv2.imwrite('face_01.jpg', trim) # 検出処理後の画像を別ウィンドウで表示 cv2.imshow('face01', trim) # これがないと「応答なし」になってしまう cv2.waitKey(0) cv2.destroyAllWindows() |
実効結果は、以下のようになります。
関連記事
-
-
【Atom エディタ】Python で Matplotlib のグラフを Atom 上に表示させる方法。
Atom エディタで Python の Matplotlib ライブラリを使って、Atom 上にグラ
-
-
【Python】Wikipedia のデータセットを取得し、文章を抽出する方法。
Wikipedia のデータセットを取得し、Python のライブラリを用いて文章を抽出する方法を紹
-
-
【matplotlib】 Python で折れ線グラフを描く方法。
今回は、Python の matplotlib というライブラリを使って簡単に折れ線グラフを描く方法
-
-
【Python】pip3 で「cannot import name ‘main’」エラーが出たときの対処法。
Python でライブラリをインストールする際に、pipを使います。 Python2 と Py
-
-
【Pandas】 DetaFrame の列ごとに演算する方法【Python】
今回は、DetaFrame の列ごとに平均や加算・減算なのど演算をし、結果を DetaFrame 型
-
-
【Python】漢字を分解するライブラリを使ってみた【部首分解】
Python で漢字を部首やさらに細かい部分に分解してくれるライブラリがあったので使ってみました。
-
-
【Linux】 ローカルに Python をインストールする方法。
今回は、Linux サーバに、root 権限なしで、ローカルに Python をインストールした方法
-
-
【Python】Windows で ライブラリ(NumPy) をインストールする方法。
Windows の Python(2.X系)で NumPy をインストールしようと思ったら、そもそも
-
-
【Python】Beautiful Soup を使ってスクレイピングする方法。
Beautiful Soup は、シンプルでわかりやすい API でデータを抜き出せる Python
-
-
【Python】OpenCV を使って顔画像を検出してみた。
OpenCV のインストール Numpy のインストール [crayon-68c75d72d