简易real live滤镜小程序制作

使用openCV 3.X

import numpy as np          
import cv2 as cv
face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml')   
 #使用HAAR级联分类器
img02 = cv.imread('picture.jpg')  #此处图片可以是自己喜欢的图片
cap = cv.VideoCapture(0)
while(1):
    ret, img = cap.read()
    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        img2 = cv.resize(img02, (w,h), interpolation=cv.INTER_AREA)
        img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
        ret, mask = cv.threshold(img2gray, 10, 255, cv.THRESH_BINARY)
        mask_inv = cv.bitwise_not(mask)
        #cv.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
        #roi_gray = gray[y:y+h, x:x+w]    
        roi = img[y:y+h, x:x+w]           #在real live中找到兴趣点区域
        # Now black-out the area of logo in ROI
        img1_bg = cv.bitwise_and(roi,roi,mask = mask_inv)
        # Take only region of logo from logo image.
        img2_fg = cv.bitwise_and(img2,img2,mask = mask)
        # Put logo in ROI and modify the main image
        dst = cv.add(img1_bg,img2_fg)
        img[y:y+h, x:x+w] = dst
    cv.imshow('img',img)
    if cv.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv.destroyAllWindows()

滤镜原图:

简易real live滤镜小程序制作_第1张图片

程序效果图
简易real live滤镜小程序制作_第2张图片

第一次写博客,哈哈,就先放一个简单有趣的吧

你可能感兴趣的:(简易real live滤镜小程序制作)