USBカメラを使ってリアルタイムで目にモザイクを入れるPythonプログラム

PythonのOpenCVを使ってUSBカメラで撮影した映像に、リアルタイムで目にモザイクを入れるプログラムを紹介します。

USBカメラ以外にパソコンのカメラを使う場合も載せています。

USBカメラを使ってリアルタイムで目にモザイクを入れている様子をYouTubeで投稿しています。

撮影している動画はPexelsの動画を使わさせてもらいました。

目次

・USBカメラを使ってリアルタイムで目にモザイクを入れるプログラム

・USBカメラで撮影している映像にリアルタイムで目にモザイクを入れている様子


USBカメラを使ってリアルタイムで目にモザイクを入れるプログラム

プログラムの説明はこちらのPythonのOpenCVを使って動画に写る目にモザイクを入れる方法で作成した”動画に写る目にモザイクを入れるプログラム”から変更した箇所だけ説明します。

26行目の映像の読み込みは cv2.VideoCapture(‘動画名前’)から cv2.VideoCapture(1)に変更しています。
cv2.VideoCapture(1)にすることでUSBカメラを起動し、映像を読み込めるようにしています。

パソコンのカメラを使う場合はcv2.VideoCapture(0)でカメラを起動し撮影が始まります。
ちなみに、ラズパイでUSBカメラを付けて実行する場合はcv2.VideoCapture(0)でカメラを起動します。

27行目から映像を1フレーム(画像)にして取り出す方法はfor文ではなくwhile文で実行し、ESCキーが入力されるまで撮影し続けます。

17行目は11行目でcv2.rectangleを書くと、口もとを顔と認識したときに、赤色の枠で囲んでしまったので、それを防ぐために目を認識した箇所の顔を本物の顔として、赤色の枠で囲むようにしています。

補足

顔を囲んでいる赤い枠を消したい場合は17行目
cv2.rectangle(img, (x, y), (x+w, y+h), (0,0,255), 3)を消す
#マークを先頭に入れる(#cv2.rectangle)と四角の赤い枠を消すことができます


上のプログラムを実行した様子がこちら↓になります。

USBカメラで撮影している映像にリアルタイムで目にモザイクを入れている様子

cv2.VideoCapture(0)にすると、自分の顔の目にモザイクが入ります。

あと、メガネやマスクをしている場合は顔と認識されにくいので、モザイクを入れれないです。