PcSchool.Club

パソコンを分かりやすく解説することを目指す無料のオンラインパソコン教室

岐阜のパソコン教室「パソコンスクール・テルン」

第2回:OpenCVを利用した顔認識機能(事前知識)Python

2022年1月19日

今回は第2回:Pythonを利用してOpenCVを利用した顔認識機能についてご紹介します。

idleを起動して作業をしていきます。

動画は2回に渡ってお送りします。

操作5:OpenCVを利用して画像を読込する

操作6:画像をグレースケールに変換する

操作7:APIのダウンロードと素材のダウンロード

操作8:顔認識機能のAPIを読込

操作9:四角形を描画

操作10:scaleFactorの調整

<操作5の入力ソース>

import cv2

img=cv2.imread(“OpenCv.png”)

cv2.imshow(‘OpenCV’, img)       #画像ファイルを表示

cv2.waitKey(0)          #showだけではすぐ画面が消えてしまうため、何かキーが押されるまで待機

cv2.destroyAllWindows() #Windowを削除

つづけて、ソース1の末尾に

cv2.imwrite(‘save.png’, img)

と記載すると、imgのオブジェクトをsave.pngで保存できます。

<操作6の入力ソース>

import cv2

img=cv2.imread(“OpenCv.png”)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #グレースケールに変換する

cv2.imshow(‘OpenCV’, gray)

cv2.waitKey(0)

cv2.destroyAllWindows()

<操作8・操作9の入力ソース>

import cv2

cascade_path = ” C:/Users/user/Desktop/haarcascade_frontalface_default.xml”

image_file =”cv2_test.jpg”

image_path=”./”+image_file

output_path=”./output”+image_file

image=cv2.imread(image_path)

image_gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) #モノクロ画像に変換する

cascade=cv2.CascadeClassifier(cascade_path) #利用するAPIのXMLを指定する

#物体認識(顔認識)の実行

#image – CV_8U 型の行列.ここに格納されている画像中から物体が検出されます

#objects – 矩形を要素とするベクトル.それぞれの矩形は,検出した物体を含みます

#scaleFactor – 各画像スケールにおける縮小量を表します

#minNeighbors – 物体候補となる矩形は,最低でもこの数だけの近傍矩形を含む必要があります

#minSize – 物体が取り得る最小サイズ.これよりも小さい物体は無視されますfacerect=cascade.detectMultiScale(image_gray, scaleFactor=1.15, minNeighbors=2, minSize=(100, 100))

#print(facerect)

color=(255,255,255)

if len(facerect) >0:

    for rect in facerect:

        cv2.rectangle(image,tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]),color,thickness=2)

    cv2.imwrite(output_path,image)

テルンのツイッターでも紹介しています。
Twitter:https://twitter.com/pcschooltelln

関連サイト

パソコン教室

パソコンスクール・テルン岐阜・穂積・大垣教室 楽しく学ぶ・通うパソコン教室あもる

パソコン修理・販売・買取・サポート

パソコンの修理・販売・買取・サポート