使用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()
滤镜原图:

程序效果图

第一次写博客,哈哈,就先放一个简单有趣的吧
这篇博客介绍了如何利用OpenCV 3.X开发一个简易的实时滤镜小程序。作者展示了滤镜原图和程序运行后的效果,为初学者提供了一个简单的实践项目。
4230

被折叠的 条评论
为什么被折叠?



