def render(self,frame):
canvas = cv2.imread("pen.jpg", cv2.CV_8UC1)
#convert frame to gray scale.
img_gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
#perform binary threshold. With different values of threshold, we get different mozaic patterns
ret,img_thr=cv2.threshold(img_gray,70,255,cv2.THRESH_BINARY)
#apply gaussian blur
img_blur = cv2.GaussianBlur(img_thr, (3, 3), 0)
#invert image
img_invert= 255-img_blur
img_blur=cv2.GaussianBlur(img_invert, ksize=(15, 15),sigmaX=0, sigmaY=0)
#generate final mozaic effect
final =255-cv2.divide(255-img_thr, 255-img_blur, scale=256)
#render image over a canvas
return cv2.multiply(final, canvas, scale=1./256)
评论列表
文章目录