作为女生最喜欢的就是男朋友能拿自己最漂亮的照片做头像,今天主要就是介绍了用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. 七夕将至,在线感受程序员男友的浪漫,不要再叫我们直男了好吗!!!

    七夕将至,在线感受程序员男友的浪漫,不要再叫我们直男了好吗!!! 1.浪费的樱花,是我们献给女朋友的第一份浪漫,爱情是什么,爱情就是浪漫的集合体,收获爱情就靠它!!! 2.通过使用代码来画出我们的心意 ...

  2. “注孤生”的程序员是怎么撩到女朋友的?

    互联网的发展,养活了一群人,这群人叫做"程序员":程序员作为一个"三高"(高智商,高收入,高强度)行业,似乎经常被冠以加班多.高智商却低情商.没女朋友.易猝死等 ...

  3. 谁说程序员不可以浪漫了,钢铁程序员也可以写情话

    博客地址:http://www.globm.top/blog/1/detail/11 谁说程序员不可以浪漫了?!我收集了各种各样的情话,以及特别篇(如吵架.女生来大姨妈等正确处理方案).以后尽量每月一 ...

  4. 程序员也可以浪漫----倾情奉献一份你值得拥有的浪漫网站源码(情人节快来了~)...

    先说个好消息吧,我2015年2月12号就要订婚啦~~总算脱离程序员光棍生涯~~不得不说这个网站给了我很大的帮助!所以,我就想把这份源码也园子里的广大朋友们,希望在你们的爱情之路上,能发挥一点点的能量, ...

  5. c语言代码表白_用微信表情翻译表白,程序员的小浪漫,赶紧Get起来

    "也许你不会发现,但我提及了,你肯定知道!" 微信作为一个社交的APP,被很多人使用,已经是人们离不开的软件. 它里面的很多功能在都在日常生活给了我们很多帮助,如手机话费支付,水电 ...

  6. 程序员女朋友礼物python代码_@程序员,用 Python 给女朋友准备个儿童节礼物可好?...

    原标题:@程序员,用 Python 给女朋友准备个儿童节礼物可好? 作者 | 猿媛牧场 现在谈个恋爱.结个婚是真的炸啊.你 2.14 要送礼物,我认了,必须送啊,没有理由不送啊:3.14 白色情人节, ...

  7. matlab程序员得浪漫,程序员也懂浪漫,表白代码,你值得拥有

    谁说程序员不懂的浪漫的,今天和小伙伴一起做一个表白的案例,怎么样?是不是很期待啊!哈哈 直接上代码.... #include void Who_is_my_real_lover_in_life (in ...

  8. 用微信表情翻译表白,程序员的小浪漫,赶紧Get起来!

    "也许你不会发现,但我提及了,你肯定知道!" 微信作为一个社交的APP,被很多人使用,已经是人们离不开的软件. 它里面的很多功能在都在日常生活给了我们很多帮助,如手机话费支付,水电 ...

  9. 让程序员增添一些浪漫情怀的代码

    看到一个可以让程序员增添一些浪漫情怀的代码,转如下: 程序员的情书 原作者:天狼星主 最近,给女友写了一封情书,是用C语言写的,女友茫然了,也感动了. /*QS.h*/ #include <st ...

最新文章

  1. linux下mysql定时备份数据库
  2. iOS自定义View 控件自动计算size能力
  3. 下载vs2008 beta2的新方法
  4. 科幻电影系列-计算机技术
  5. mysql 学习笔记13 查询语句强化
  6. QT打印窗口、退出、设置字体及颜色、设置时间、控件实现系统函数、添加资源文件(菜单图片)、工具栏添加图片
  7. C#将子窗体填充到父窗体的panel中
  8. signature=e77a95aa96da4f165d75bdbdf33ba079,来用百度密语吧!!!
  9. solidity教程(二)僵尸攻击人类
  10. matlab怎么算方差和标准差,matlab用var函数算出的方差和标准差求解释~
  11. 录制GIF动画 MAC
  12. 「音视频直播技术」Android下H264解码
  13. Eclipse+Java+Swing实现企业人事管理系统
  14. 从IIS到PAGE对象:ASP.NET之旅
  15. LSD算法调节参数GUI
  16. 汉字转拼音(不带音调)
  17. JS Proxy (代理)
  18. Objective-C学习资源
  19. 雷军:创业者要牢记的两个关键词
  20. 已解决FutureWarning: The default value of regex will change from True to False in a future version. In

热门文章

  1. JavaScript提取非行间样式
  2. 平台业务收款分账产品设计 - 退款退分账
  3. TransE全文中文翻译(Translating Embeddings for Modeling Multi-relational Data)
  4. 反爬与反反爬常见知识点
  5. 啪啪三国2获取服务器信息,啪啪三国2海量资源获取途径攻略
  6. DEDE调用指定文章ID
  7. 无线数字DR平板探测器维修瓦里安PaxScan 4030X分析
  8. python 变量使用进阶
  9. 单片机24秒倒计时c语言,单片机汇编语言24秒倒计时程序
  10. Linux从零学习记录(四)