前言:
目前兄弟们对“pycharm导入dlib”大体比较注重,你们都需要知道一些“pycharm导入dlib”的相关内容。那么小编也在网摘上汇集了一些有关“pycharm导入dlib””的相关知识,希望大家能喜欢,朋友们一起来了解一下吧!导语
又是一年情人节,各位脱单了吗?
每年情人节可以说都是品牌们大展身手,情侣们各秀恩爱,单身狗孤苦伶仃的时候(不是)……
而作为程序员and兼职各种文案圈的圈佬,除了被喂一嘴的狗粮,喜欢不仅是敲敲代码的还
有去搜集合一些浪漫动人的文案,除了汲取一些爱情的灵感。
在最适当的时候(比如说今天)分享给大家情人节表白的代码以及很多很多积攒的文案啦
——
爱情是,你吃多少苦,我陪你一起吃。(Love…Shares What Life Dishes Out) ——栗子
正文
一、木子的文案馆❤
你想要的都在这里——
1)这一天,让可爱的撞见可爱的像云撞见云,风撞见风!
2)月亮照回湖心,野鹤奔向闲云,我步如你。 ——仓央嘉措
答案很长,我准备用一生的时间来回答,你准备要听了吗? ——林徽因
我不是在等雨停,我是在等你!
你下午四点钟来,那么从三点钟起,我就开始感到幸福。 ——《小王子》
二、木子的程序代码
实现步骤:本文效果就是类似“我的眼里只有你”的效果。使用了Python人脸识别功能这秘密
武器的!dlib库Python可以直接调用dlib库进行面部模式识别,其中也包含了准度较高的眼部
识别,如下图:
通过37、38、40、41来确定左眼球位置,43、44、48、47来确定右眼球位置。将女友照片
按眼球区域缩放,利用PIL模块将图片贴到背景图眼球位置上,最终生成目标图片。
下面来详细的看下代码叭
1)环境安装
本文所用环境:Python3、Pycharm、opencv、numpy、pillow、dlib模块部分自带的模块就不
介绍了,如需安装环境、解答等见文末找我!第三方模块安装:
pip install -i +模块名
2)代码展示
import cv2import numpy as npfrom PIL import Imageimport osimport dlib#############改成你的路径,把照片放到该路径################os.chdir(r"C:") #存放照片的文件目录,记得路径用/分隔#背景图片back_graph = 'xiaozhan.jpg' #照片命名最好是英文,否则会报错bg_img = cv2.imread(back_graph)#检测背景图片人脸68个点的位置gray = cv2.cvtColor(bg_img,cv2.COLOR_BGR2GRAY)detector = dlib.get_frontal_face_detector()predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")faces = detector(gray)from removebg import RemoveBgfrom PIL import Image#把图片背景设置成眼球的颜色def Change_img_bg(old_img, bg_color): rmbg = RemoveBg("UQ7x2hmLXxv8Hs13f1JTL1Q7", "error.log") # 引号内是你获取的API rmbg.remove_background_from_img_file(old_img) #图片地址 old_no_bg = old_img + '_no_bg.png' im = Image.open(old_no_bg) x, y = im.size # 填充背景 p = Image.new('RGBA', im.size, bg_color) p.paste(im, (0, 0, x, y), im) # 保存填充后的图片 p.save("new_black_pg_img.png") #眼睛内容图片src_graph = "yanzi_tiqin3.jpg" #照片命名最好是英文,否则会报错#需要改变背景颜色(如不需要请注释该段代码)Change_img_bg(src_graph, 'black') #要跟据眼球的颜色调整#341c02src_blacke_bg_graph = 'new_black_pg_img.png' src_img = cv2.imread(src_blacke_bg_graph) #不需要改变背景颜色#src_img = cv2.imread(src_graph)#把图片裁剪成圆形def img_deal(ori_img): img = cv2.imread(ori_img, cv2.IMREAD_UNCHANGED) h, w, channel = img.shape img_deal = np.zeros((h, w, 4), np.uint8) img_deal[:, :, 0:3] = img[:, :, 0:3] img_circle = np.zeros((h, w, 1), np.uint8) img_circle[:, :, :] = 0 center = (int(w / 2), int(h / 2)) radius = int(min(h, w) / 2) img_circle = cv2.circle(img_circle,center ,radius , 255, -1) img_deal[:, :, 3] = img_circle[:, :, 0] cv2.imwrite('eye_circle.png', img_deal) for face in faces: face_68point = predictor(gray, face) #获取左眼球位置信息 left_eye_x1 = min(face_68point.part(37).x, face_68point.part(41).x) left_eye_x2 = min(face_68point.part(38).x, face_68point.part(40).x) left_eye_y1 = min(face_68point.part(37).y, face_68point.part(48).y) left_eye_y2 = min(face_68point.part(40).y, face_68point.part(41).y) left_eye_midx = int((left_eye_x1+left_eye_x2)/2) left_eye_midy = int((left_eye_y1+left_eye_y2)/2) #获取右眼球位置信息 right_eye_x1 = min(face_68point.part(43).x, face_68point.part(47).x) right_eye_x2 = min(face_68point.part(44).x, face_68point.part(46).x) right_eye_y1 = min(face_68point.part(43).y, face_68point.part(44).y) right_eye_y2 = min(face_68point.part(47).y, face_68point.part(46).y) right_eye_midx = int((right_eye_x1+right_eye_x2)/2) right_eye_midy = int((right_eye_y1+right_eye_y2)/2) #左眼球大小 left_eye_r = abs(int(min(left_eye_x1-left_eye_x2,left_eye_y1-left_eye_y2)/2)) left_eye_d = left_eye_r*2 #右眼球大小 right_eye_r = abs(int(min(right_eye_x1-right_eye_x2,right_eye_y1-right_eye_y2)/2)) right_eye_d = right_eye_r*2 #设置眼球中图片直径 eye_img_d = min(int(left_eye_d/1.2),int(right_eye_d/1.2)) #把图像贴到左眼 left_ori = cv2.resize(src_img, (eye_img_d, eye_img_d), interpolation=cv2.INTER_AREA) cv2.imwrite("left_eye.png", left_ori) img_deal("left_eye.png") left_eye = Image.open("eye_circle.png") im = Image.open(back_graph) im.paste(left_eye,(left_eye_midx-int(eye_img_d/3), left_eye_midy-int(eye_img_d/2)),left_eye) #把图像贴到右眼 right_ori = cv2.resize(src_img, (eye_img_d, eye_img_d), interpolation=cv2.INTER_AREA) cv2.imwrite("right_eye.png", right_ori) img_deal("right_eye.png") right_eye = Image.open("eye_circle.png") im.paste(right_eye,(right_eye_midx-int(eye_img_d/3),right_eye_midy-int(eye_img_d/2)),right_eye) #保存最终图形 im.save("you_in_my_eye2.png")
3)效果展示
第一组效果
第二组效果
第三组效果
好啦!这效果是不是特别棒呀~图片放大就看的清楚啦
总结
“情话都是我抄来的,想说给你听是真的。”
嘻嘻这是今天最后分享的一句表白文啦,代码也敲完了,小编继续去奋斗啦~需要源码的
完整的素材、安装环境、源码等看文末即可啦!
往期文章推荐阅读——
项目1.0 卡通化头像
【Opencv实战】如何快速Get专属头像?惊艳—女友要的头像终于找到了~
项目1.1 动漫化人物
【突破次元壁】谁说二次元离我们遥远?Python特效火遍全网,关键技术原来是它。
项目1.2 抠图神器
【爆赞】这款Python小程序自动抠图只需5秒,秒杀PS手动抠图?
文章汇总——
项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在文章汇总哦!!欢迎阅读~)
标签: #pycharm导入dlib