今天上班时,我正在敲代码。女朋友突然发了一张图片给我:

“老公,我也想要一个这样的头像...” 后面跟着一个可怜的表情。

无奈,不管怎样我只好应承下来。

下班回到家中,我准备把这个任务完成了。其实完全可以找个美颜的 APP ,上传图片,点几下就好了。但是作为她心目中的技术大神,我肯定不能这么干,不然干嘛要让我来做这件事情(要深刻理解女生的目的)。

我略加思索,感觉这件事情用 Python 来实现并不困难。

实现步骤

实现需要用到的工具是 OpenCV 库,用 OpenCV 库里面的图片处理接口就能满足需求。

安装 OpenCV 库

安装方法还是我们的老一套:

pip install opencv-python

读取图片

我从手机相册中找了一张照片,发送到微信,然后保存到电脑上。

我们代码的第一步就是要读取这张图片。

import cv2
img = cv2.imread("mv5.jpg")

转换成灰度图片

我们读取的是 RGB 格式的图片。接着,我们将这张图片转换为灰度图片。

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

转换之后,图片是这样子的:

反转灰度图像

接下来,我们要将灰度图像反转,以便于增强图像的细节。

inverted_image = 255 - gray_image

反转之后,我们得到的图片是这样的:

看起来是不是有点恐怖?

创建铅笔图

最后,我们将反转的图像进行模糊处理,然后再将模糊的图像倒置,最后将灰度图像除以倒置的模糊图像,就可以创建铅笔草图了。

blurred = cv2.GaussianBlur(inverted_img, (21, 21), 0)
inverted_blurred = 255 - blurred
pencil_sketch = cv2.divide(gray_img, inverted_blurred, scale=256.0)

我们使用 OpenCV 显示一下:

cv2.imshow("original", img)
cv2.imshow("pencil", pencil_sketch)
cv2.waitKey(0)

最后输出的图像是这样子的:

总结

别看我写了这么几个步骤,实际上代码也就几行而已。下次妹子问你能不能给她做素描图像,千万别甩一句:用美图秀秀啊!不然你会失去一个妹子的!

嘿嘿,几行代码秒出美女素描图相关推荐

  1. 嘿嘿!几行代码秒出美女素描图!

    文 | 闲欢 来源:Python 技术「ID: pythonall」 今天上班时,我正在敲代码.女朋友突然发了一张图片给我: "老公,我也想要一个这样的头像..." 后面跟着一个可 ...

  2. python代码300行程序_python小工具,15行代码秒出工资条

    公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...

  3. python小工具,15行代码秒出工资条

    公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...

  4. JavaScript 4行代码找出重复出现次数最多的元素及次数

    JavaScript 4行代码找出重复出现次数最多的元素及次数 今天遇到的一个面试题,看起来比较简单,解题却用几个循环嵌套,感觉不对劲,后面又想了一个比较优雅的解法,如下: 解题思路 为数组内每个相同 ...

  5. 直击面试现场:神级程序员仅100秒,60行代码写出俄罗斯方块,成为全公司焦点!...

    小编我今天逛论坛看到一位HR帖子直播公司面试情况,该公司是做棋牌APP的,现在正在招聘前端工程师和运营人员,HR直播的是前端这块的,有写游戏的也有做网站项目的,写特效的都有很多,但是这位HR却看上了一 ...

  6. windows bat脚本编写_怎样在 txt 中用 2 行代码写出一个锁屏休息提醒脚本?

    锁屏 面对电脑,沉浸在工作中,往往忘记休息.长此以往,脊椎肯定受不了,造成驼背,对体态不好. 何不写一个小脚本,40 分钟锁一次屏,暗示你应该休息放松一下了? 新建 .txt 文档,命名随意,但后缀改 ...

  7. Python编曲实践(八):我,乔鲁诺·乔巴那,能用两百行代码写出JOJO黄金之风里我自己的出场曲!

    前言 前些天笔者写的文章 Python编曲实践(七):整整一百行Python代码写出黑人抬棺梗曲<Astronomia>的旋律 受到了大家的许多支持和好评,本篇文章挑战更复杂.更有挑战性, ...

  8. 多边形画椭圆算法java_运用椭圆画法,45行代码画出任意正多边形

    最近做Box2dWeb开发时,想写个创建正多边形的功能,可是由于学识尚浅,我在草稿纸上画了,想了一个上午也没有研究出什么好方法.后来翻抽屉的时候,找出了以前哥哥画的一张用同心圆画椭圆的示意图.看到这幅 ...

  9. 多边形画椭圆算法java_运用椭圆画法,45行代码画出随意正多边形

    近期做Box2dWeb开发时,想写个创建正多边形的功能.但是因为学识尚浅.我在草稿纸上画了,想了一个上午也没有研究出什么好方法.后来翻抽屉的时候,找出了曾经哥哥画的一张用同心圆画椭圆的示意图. 看到这 ...

最新文章

  1. 计算机科学与技术单片机55,关于计算机技术与科学专业的考研信息
  2. python—unittest—数据驱动详细讲解(ddt)
  3. android studio无线真机调试
  4. python语言实现飞机大战
  5. shell脚本详解(七)——正则表达式、sort、uniq、tr
  6. android采用什么图标单位,Android支持的长度单位
  7. 前端学习(587):快速调试css数值及颜色图形动画
  8. java 使用接口便于维护程序_Java初学——面向对象接口的应用
  9. 7-104 6翻了 (15 分)
  10. Xilinx FPGA单端时钟设计方法
  11. PSD分层情人节海报让人眼前一亮
  12. OpenGL+VS2012环境搭建
  13. 最新!Dubbo 远程代码执行漏洞通告,速度升级
  14. 对象存储介绍(腾讯云cos)
  15. linux误删除文件恢复
  16. HTML炫彩按钮,Button - 动画按钮
  17. centos 零碎学习小记 11.
  18. Tomcat SSL Failed to load keystore type JKS with path 系统找不到指定文件
  19. Python AI 换脸,宋小宝都能换脸刘亦菲,你的网恋对象不知道有多可怕!
  20. Python做手写数字识别

热门文章

  1. 快速找出QQ群成员中不在名单内的人
  2. WPF 控件专题 ListView 样式(斑马线)
  3. 三维重建面试3:旋转矩阵-病态矩阵、欧拉角-万向锁、四元数
  4. matlab程序设计基础教程 刘国良,MATLAB程序设计基础教程 刘国良 西安电子科技大学出版社...
  5. 广东省外语艺术职业学院计算机专业,广东省外语艺术职业学院有哪些专业 附好的重点专业名单...
  6. android怎么加载3d地图,百度地图Android V2.0新增卫星图及3D模式功能
  7. 生擒网络剪刀手(NetCut)
  8. 一个SEO主管在SEO团队会议上的发言
  9. Android逆向移花接木之添加注册机制
  10. IDEA查询包含关键字的文本文件