程序员独特的浪漫:拿女朋友的照片做成动漫人物当头像
作为女生最喜欢的就是男朋友能拿自己最漂亮的照片做头像,今天主要就是介绍了用python实现人像动漫化的示例代码,文中通过示例代码介绍的非常详细,而且上手简单,小白操作起来也不难,二十多行代码,快去动手@你喜欢的人吧~
1.利用百度api实现人像动漫化
百度API地址:https://ai.baidu.com/tech/imageprocess/selfie_anime
技术文档:https://ai.baidu.com/ai-doc/IMAGEPROCESS/Mk4i6olx5
注册百度账号,开通实现人像动漫化,创建应用。
# encoding:utf-8import requests
import base64# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:access_token= response.json()["access_token"]
2.将上面的【官网获取的AK】【官网获取的SK】, 替换成自己的API Key 和 Secret Key
'''
人像动漫化
'''
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二进制方式打开需要处理图片文件
f = open('001.jpg', 'rb') # 打开需要处理的图片
img = base64.b64encode(f.read())params = {"image":img}
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
print(response)
if response:# 保存文件f = open('t.jpg', 'wb')img = (response.json()['image'])f.write(base64.b64decode(img))f.close()
突发奇想,也可以把照片改成素描画或动漫,随便找了一张生活图,如下图:
原图
完整代码:
# -*- coding: utf-8 -*-import cv2from PIL import Image, ImageOps, ImageFilter# 转换成漫画风格
def toCarttonStyle(picturePath):# 设置输入输出路径和文件名称imgInput_FileName = picturePathimgOutput_FileName = picturePath.split(".")[0] + '_cartoon.' + picturePath.split(".")[1]# 属性设置num_down = 2 # 缩减像素采样的数目num_bilateral = 7 # 定义双边滤波的数目# 读取图片img_rgb = cv2.imread(imgInput_FileName)# 用高斯金字塔降低取样img_color = img_rgbfor _ in range(num_down):img_color = cv2.pyrDown(img_color)# 重复使用小的双边滤波代替一个大的滤波for _ in range(num_bilateral):img_color = cv2.bilateralFilter(img_color, d=9, sigmaColor=9, sigmaSpace=7)# 升采样图片到原始大小for _ in range(num_down):img_color = cv2.pyrUp(img_color)# 转换为灰度并且使其产生中等的模糊img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY)img_blur = cv2.medianBlur(img_gray, 7)# 检测到边缘并且增强其效果img_edge = cv2.adaptiveThreshold(img_blur, 255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,blockSize=9,C=2)# 算法处理后,照片的尺寸可能会不统一# 把照片的尺寸统一化height=img_rgb.shape[0]width = img_rgb.shape[1]img_color=cv2.resize(img_color,(width,height))# 转换回彩色图像img_edge = cv2.cvtColor(img_edge, cv2.COLOR_GRAY2RGB)img_cartoon = cv2.bitwise_and(img_color, img_edge)# 保存转换后的图片cv2.imwrite(imgOutput_FileName, img_cartoon)print('文件转换成漫画成功,保存在' + imgOutput_FileName)# 透明度转换 素描转换的一部分
def dodge(a, b, alpha):# alpha为图片透明度return min(int(a * 255 / (256 - b * alpha)), 255)# 图片转换为素描
def toSketchStyle(picturePath, blur=25, alpha=1.0):# 设置输入输出路径和文件名称imgInput_FileName = picturePathimgOutput_FileName = picturePath.split(".")[0] + '_Sketch.' + picturePath.split(".")[1]# 转化成ima对象img = Image.open(picturePath)# 将文件转成灰色img1 = img.convert('L')img2 = img1.copy()img2 = ImageOps.invert(img2)# 模糊度for i in range(blur):img2 = img2.filter(ImageFilter.BLUR)width, height = img1.sizefor x in range(width):for y in range(height):a = img1.getpixel((x, y))b = img2.getpixel((x, y))img1.putpixel((x, y), dodge(a, b, alpha))# 保存转换后文件img1.save(imgOutput_FileName)print('文件转换成漫画成功,保存在' + imgOutput_FileName)if __name__ == '__main__':imgInput_FileName = input('输入文件路径:')while True:print('1、漫画风格')print('2、素描风格')userChoose = input('请选择风格(输入序号即可):')if userChoose.__eq__('1'):toCarttonStyle(imgInput_FileName)breakelif userChoose.__eq__('2'):toSketchStyle(imgInput_FileName)breakelse:print('违法输入(请输入序号)')break
转换后的图
Python基础学习资源共享,免费视频课堂,电子书籍,关注云芸学派不后悔
还是很有趣的,一尝试就停不下来,到此这篇关于python实现人像动漫化的示例代码的文章就介绍到这了,更多有关Python精彩内容可以看小编主页吖。
程序员独特的浪漫:拿女朋友的照片做成动漫人物当头像相关推荐
- 七夕将至,在线感受程序员男友的浪漫,不要再叫我们直男了好吗!!!
七夕将至,在线感受程序员男友的浪漫,不要再叫我们直男了好吗!!! 1.浪费的樱花,是我们献给女朋友的第一份浪漫,爱情是什么,爱情就是浪漫的集合体,收获爱情就靠它!!! 2.通过使用代码来画出我们的心意 ...
- “注孤生”的程序员是怎么撩到女朋友的?
互联网的发展,养活了一群人,这群人叫做"程序员":程序员作为一个"三高"(高智商,高收入,高强度)行业,似乎经常被冠以加班多.高智商却低情商.没女朋友.易猝死等 ...
- 谁说程序员不可以浪漫了,钢铁程序员也可以写情话
博客地址:http://www.globm.top/blog/1/detail/11 谁说程序员不可以浪漫了?!我收集了各种各样的情话,以及特别篇(如吵架.女生来大姨妈等正确处理方案).以后尽量每月一 ...
- 程序员也可以浪漫----倾情奉献一份你值得拥有的浪漫网站源码(情人节快来了~)...
先说个好消息吧,我2015年2月12号就要订婚啦~~总算脱离程序员光棍生涯~~不得不说这个网站给了我很大的帮助!所以,我就想把这份源码也园子里的广大朋友们,希望在你们的爱情之路上,能发挥一点点的能量, ...
- c语言代码表白_用微信表情翻译表白,程序员的小浪漫,赶紧Get起来
"也许你不会发现,但我提及了,你肯定知道!" 微信作为一个社交的APP,被很多人使用,已经是人们离不开的软件. 它里面的很多功能在都在日常生活给了我们很多帮助,如手机话费支付,水电 ...
- 程序员女朋友礼物python代码_@程序员,用 Python 给女朋友准备个儿童节礼物可好?...
原标题:@程序员,用 Python 给女朋友准备个儿童节礼物可好? 作者 | 猿媛牧场 现在谈个恋爱.结个婚是真的炸啊.你 2.14 要送礼物,我认了,必须送啊,没有理由不送啊:3.14 白色情人节, ...
- matlab程序员得浪漫,程序员也懂浪漫,表白代码,你值得拥有
谁说程序员不懂的浪漫的,今天和小伙伴一起做一个表白的案例,怎么样?是不是很期待啊!哈哈 直接上代码.... #include void Who_is_my_real_lover_in_life (in ...
- 用微信表情翻译表白,程序员的小浪漫,赶紧Get起来!
"也许你不会发现,但我提及了,你肯定知道!" 微信作为一个社交的APP,被很多人使用,已经是人们离不开的软件. 它里面的很多功能在都在日常生活给了我们很多帮助,如手机话费支付,水电 ...
- 让程序员增添一些浪漫情怀的代码
看到一个可以让程序员增添一些浪漫情怀的代码,转如下: 程序员的情书 原作者:天狼星主 最近,给女友写了一封情书,是用C语言写的,女友茫然了,也感动了. /*QS.h*/ #include <st ...
最新文章
- linux下mysql定时备份数据库
- iOS自定义View 控件自动计算size能力
- 下载vs2008 beta2的新方法
- 科幻电影系列-计算机技术
- mysql 学习笔记13 查询语句强化
- QT打印窗口、退出、设置字体及颜色、设置时间、控件实现系统函数、添加资源文件(菜单图片)、工具栏添加图片
- C#将子窗体填充到父窗体的panel中
- signature=e77a95aa96da4f165d75bdbdf33ba079,来用百度密语吧!!!
- solidity教程(二)僵尸攻击人类
- matlab怎么算方差和标准差,matlab用var函数算出的方差和标准差求解释~
- 录制GIF动画 MAC
- 「音视频直播技术」Android下H264解码
- Eclipse+Java+Swing实现企业人事管理系统
- 从IIS到PAGE对象:ASP.NET之旅
- LSD算法调节参数GUI
- 汉字转拼音(不带音调)
- JS Proxy (代理)
- Objective-C学习资源
- 雷军:创业者要牢记的两个关键词
- 已解决FutureWarning: The default value of regex will change from True to False in a future version. In