[MAC] 내장 카메라를 사용하여 간단한 실시간 동영상 처리를 시도했습니다.
환경
처리 내용
카메라로부터 취득한 동영상에 찍혀 있는 인간의 얼굴(전면)을 검출해, 모자이크 처리를 행합니다.
동영상 처리
동영상을 1프레임 마다 화상 처리해, 묘화 계속합니다.
따라서 먼저 카메라에서 프레임을 읽는 프로그램을 만듭니다.
program1
import cv2
#カメラから動画を読み込む
#このプログラムでは、内蔵カメラを使用するため0
camera = cv2.VideoCapture(0)
while True:
# フレームを読込み
ret, frame = camera.read()
# フレームが読み込めなかった場合
if not ret:
break
# フレームの描画
cv2.imshow('camera', frame)
# loop停止keyの設定(q)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#キャプチャデバイスの終了
camera.release()
#プログラムの実行により追加されたウィンドウを全て停止
cv2.destroyAllWindows()
여기에 얼굴 검출 및 처리 내용의 프로그램을 추가합니다.
※ htps : // 기주 b. 코 m / 오렌지 cv / 오페인 cv / t 레에 / 마 s r / data /
위의 URL에서 분류기를 다운로드하여 프로그램과 같은 파일에 저장하십시오.
program2
import cv2
camera = cv2.VideoCapture(0)
#分類機を取得
cascade_path = "haarcascade_frontalface_default.xmlの絶対パス"
#CascadeClassifier - 分類機の読み込み
cascade = cv2.CascadeClassifier(cascade_path)
while True:
ret, frame = camera.read()
if not ret: break
#detectMultiScale - 読み込んだ分類器をしようして顔を検出
#scaleFactor - 各画像スケールにおける縮小量
#minNeighbors - 候補の矩形に含まれる近傍矩形の最低数
#minSize – 物体の最小サイズ.これよりも小さい物体は無視されます
facerect = cascade.detectMultiScale(frame, scaleFactor=1.1, minNeighbors=2, minSize=(30,30))
#検出後の表示される矩形の色の設定(BGRであるため下記の場合は赤)
rectangle_color = (0,0,255)
# 検出できた場合
if len(facerect) > 0:
for rect in facerect:
#tuple - 複数の要素を管理するデータ型の一種(要素を追加・削除・変更できない)
#thickness - 線や円の太さ、-1は塗り潰し
cv2.rectangle(frame, tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]), rectangle_color, thickness=2)
# 顔部分の抽出
cut_frame = frame[rect[1]:rect[1]+rect[3],rect[0]:rect[0]+rect[2]]
# cv2.resize - サイズの変更
cut_frame = cv2.resize(cut_frame,(rect[2]//20, rect[3]//20))
#cv2.INTER_NEAREST - サイズの変更によるモザイク処理
cut_frame = cv2.resize(cut_frame,(rect[2], rect[3]),cv2.INTER_NEAREST)
frame[rect[1]:rect[1]+rect[3],rect[0]:rect[0]+rect[2]]=cut_frame
cv2.imshow('camera', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
camera.release()
cv2.destroyAllWindows()
이렇게 모자이크 처리를 할 수 있었습니다.
Reference
이 문제에 관하여([MAC] 내장 카메라를 사용하여 간단한 실시간 동영상 처리를 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shunsuke059/items/f35e63020b92f9cec974
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
동영상을 1프레임 마다 화상 처리해, 묘화 계속합니다.
따라서 먼저 카메라에서 프레임을 읽는 프로그램을 만듭니다.
program1
import cv2
#カメラから動画を読み込む
#このプログラムでは、内蔵カメラを使用するため0
camera = cv2.VideoCapture(0)
while True:
# フレームを読込み
ret, frame = camera.read()
# フレームが読み込めなかった場合
if not ret:
break
# フレームの描画
cv2.imshow('camera', frame)
# loop停止keyの設定(q)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#キャプチャデバイスの終了
camera.release()
#プログラムの実行により追加されたウィンドウを全て停止
cv2.destroyAllWindows()
여기에 얼굴 검출 및 처리 내용의 프로그램을 추가합니다.
※ htps : // 기주 b. 코 m / 오렌지 cv / 오페인 cv / t 레에 / 마 s r / data /
위의 URL에서 분류기를 다운로드하여 프로그램과 같은 파일에 저장하십시오.
program2
import cv2
camera = cv2.VideoCapture(0)
#分類機を取得
cascade_path = "haarcascade_frontalface_default.xmlの絶対パス"
#CascadeClassifier - 分類機の読み込み
cascade = cv2.CascadeClassifier(cascade_path)
while True:
ret, frame = camera.read()
if not ret: break
#detectMultiScale - 読み込んだ分類器をしようして顔を検出
#scaleFactor - 各画像スケールにおける縮小量
#minNeighbors - 候補の矩形に含まれる近傍矩形の最低数
#minSize – 物体の最小サイズ.これよりも小さい物体は無視されます
facerect = cascade.detectMultiScale(frame, scaleFactor=1.1, minNeighbors=2, minSize=(30,30))
#検出後の表示される矩形の色の設定(BGRであるため下記の場合は赤)
rectangle_color = (0,0,255)
# 検出できた場合
if len(facerect) > 0:
for rect in facerect:
#tuple - 複数の要素を管理するデータ型の一種(要素を追加・削除・変更できない)
#thickness - 線や円の太さ、-1は塗り潰し
cv2.rectangle(frame, tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]), rectangle_color, thickness=2)
# 顔部分の抽出
cut_frame = frame[rect[1]:rect[1]+rect[3],rect[0]:rect[0]+rect[2]]
# cv2.resize - サイズの変更
cut_frame = cv2.resize(cut_frame,(rect[2]//20, rect[3]//20))
#cv2.INTER_NEAREST - サイズの変更によるモザイク処理
cut_frame = cv2.resize(cut_frame,(rect[2], rect[3]),cv2.INTER_NEAREST)
frame[rect[1]:rect[1]+rect[3],rect[0]:rect[0]+rect[2]]=cut_frame
cv2.imshow('camera', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
camera.release()
cv2.destroyAllWindows()
이렇게 모자이크 처리를 할 수 있었습니다.
Reference
이 문제에 관하여([MAC] 내장 카메라를 사용하여 간단한 실시간 동영상 처리를 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shunsuke059/items/f35e63020b92f9cec974텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)