嘿嘿,几行代码秒出美女素描图
今天上班时,我正在敲代码。女朋友突然发了一张图片给我:
“老公,我也想要一个这样的头像...” 后面跟着一个可怜的表情。
无奈,不管怎样我只好应承下来。
下班回到家中,我准备把这个任务完成了。其实完全可以找个美颜的 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)
最后输出的图像是这样子的:
总结
别看我写了这么几个步骤,实际上代码也就几行而已。下次妹子问你能不能给她做素描图像,千万别甩一句:用美图秀秀啊!不然你会失去一个妹子的!
嘿嘿,几行代码秒出美女素描图相关推荐
- 嘿嘿!几行代码秒出美女素描图!
文 | 闲欢 来源:Python 技术「ID: pythonall」 今天上班时,我正在敲代码.女朋友突然发了一张图片给我: "老公,我也想要一个这样的头像..." 后面跟着一个可 ...
- python代码300行程序_python小工具,15行代码秒出工资条
公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...
- python小工具,15行代码秒出工资条
公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...
- JavaScript 4行代码找出重复出现次数最多的元素及次数
JavaScript 4行代码找出重复出现次数最多的元素及次数 今天遇到的一个面试题,看起来比较简单,解题却用几个循环嵌套,感觉不对劲,后面又想了一个比较优雅的解法,如下: 解题思路 为数组内每个相同 ...
- 直击面试现场:神级程序员仅100秒,60行代码写出俄罗斯方块,成为全公司焦点!...
小编我今天逛论坛看到一位HR帖子直播公司面试情况,该公司是做棋牌APP的,现在正在招聘前端工程师和运营人员,HR直播的是前端这块的,有写游戏的也有做网站项目的,写特效的都有很多,但是这位HR却看上了一 ...
- windows bat脚本编写_怎样在 txt 中用 2 行代码写出一个锁屏休息提醒脚本?
锁屏 面对电脑,沉浸在工作中,往往忘记休息.长此以往,脊椎肯定受不了,造成驼背,对体态不好. 何不写一个小脚本,40 分钟锁一次屏,暗示你应该休息放松一下了? 新建 .txt 文档,命名随意,但后缀改 ...
- Python编曲实践(八):我,乔鲁诺·乔巴那,能用两百行代码写出JOJO黄金之风里我自己的出场曲!
前言 前些天笔者写的文章 Python编曲实践(七):整整一百行Python代码写出黑人抬棺梗曲<Astronomia>的旋律 受到了大家的许多支持和好评,本篇文章挑战更复杂.更有挑战性, ...
- 多边形画椭圆算法java_运用椭圆画法,45行代码画出任意正多边形
最近做Box2dWeb开发时,想写个创建正多边形的功能,可是由于学识尚浅,我在草稿纸上画了,想了一个上午也没有研究出什么好方法.后来翻抽屉的时候,找出了以前哥哥画的一张用同心圆画椭圆的示意图.看到这幅 ...
- 多边形画椭圆算法java_运用椭圆画法,45行代码画出随意正多边形
近期做Box2dWeb开发时,想写个创建正多边形的功能.但是因为学识尚浅.我在草稿纸上画了,想了一个上午也没有研究出什么好方法.后来翻抽屉的时候,找出了曾经哥哥画的一张用同心圆画椭圆的示意图. 看到这 ...
最新文章
- 计算机科学与技术单片机55,关于计算机技术与科学专业的考研信息
- python—unittest—数据驱动详细讲解(ddt)
- android studio无线真机调试
- python语言实现飞机大战
- shell脚本详解(七)——正则表达式、sort、uniq、tr
- android采用什么图标单位,Android支持的长度单位
- 前端学习(587):快速调试css数值及颜色图形动画
- java 使用接口便于维护程序_Java初学——面向对象接口的应用
- 7-104 6翻了 (15 分)
- Xilinx FPGA单端时钟设计方法
- PSD分层情人节海报让人眼前一亮
- OpenGL+VS2012环境搭建
- 最新!Dubbo 远程代码执行漏洞通告,速度升级
- 对象存储介绍(腾讯云cos)
- linux误删除文件恢复
- HTML炫彩按钮,Button - 动画按钮
- centos 零碎学习小记 11.
- Tomcat SSL Failed to load keystore type JKS with path 系统找不到指定文件
- Python AI 换脸,宋小宝都能换脸刘亦菲,你的网恋对象不知道有多可怕!
- Python做手写数字识别
热门文章
- 快速找出QQ群成员中不在名单内的人
- WPF 控件专题 ListView 样式(斑马线)
- 三维重建面试3:旋转矩阵-病态矩阵、欧拉角-万向锁、四元数
- matlab程序设计基础教程 刘国良,MATLAB程序设计基础教程 刘国良 西安电子科技大学出版社...
- 广东省外语艺术职业学院计算机专业,广东省外语艺术职业学院有哪些专业 附好的重点专业名单...
- android怎么加载3d地图,百度地图Android V2.0新增卫星图及3D模式功能
- 生擒网络剪刀手(NetCut)
- 一个SEO主管在SEO团队会议上的发言
- Android逆向移花接木之添加注册机制
- IDEA查询包含关键字的文本文件