程序员分手手册,教你如何恢复单身

1,000 阅读7分钟

这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战

一、前言

首先声明,下面的言论纯属胡扯,请不要当真。

在大家的印象当中,程序员是一个高薪职业,经常认为程序员是一个精英群体。现在我就告诉你们,这是真的。也正是因为这样,程序员非常受欢迎,通常一个程序员会有10到11个女生追(此处数字为二进制)。所以大多数程序员都不是单身,这也是程序员非常苦恼的地方。所以很多程序员都想方设法和女朋友分手,看到这篇文章的你幸运了,今天让你学以致用,写个分手小程序,让你享受单身的自由。

二、哈?去旅游?

昨天是5月20号,之所以不在昨天发还是出于对人身安全的考虑。程序员小汪有这么一个苦恼。

他说:“我那个女朋友啊,烦得很,天天粘着我,代码都没时间打了。就昨天,还说要去旅游,她是想peach(屁吃)吧,我那么大个项目(实现登录注册),哪有时间陪她去旅游啊!”。

听到了小汪的抱怨,我思索了一番,问:“你渴望单身吗?”。

小汪回答:“那当然最好了,这样我就能安心写我的项目了”。

于是我就给程序员小汪出了个主意,小汪以下面这个姿态来给我报喜:

在这里插入图片描述

看样子他是成功了。我问小汪:“安排上了?”

小汪略显沮丧:“失败了,不知道哪个流程出了问题”。

我让小汪给我看看我让他做的东西,看完后我摇了摇头:“这个不行,太好看了,再丑点就能成功。”

我让小汪改了改代码,过了一段时间,小汪又换了一副容颜。这次的他容光泛发,从他的表情来看,这回没问题了:

在这里插入图片描述

他脸庞还有些许红润,嘴角带着血丝,但是仍掩盖不了他内心的喜悦。他说:“感谢大哥的教导,已经分了。虽然屏幕被砸了,键盘被崴了,鼠标也没尾巴了,但是都值了。”

三、免责声明

看到这里很多程序员同胞们肯定很好奇,我到底让小汪做了些啥。大家别急,我会告诉大家的。在此之前需要大家阅读以下声明:

通过使用内容随之而来的风险与作者无关。访问者可将本文提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

最后有啥问题请不要祖安作者,万分感谢。

四、事情经过

我给小汪的提议是,既然他女朋友想去旅游那你可以展现一下男人的魅力(抠门),详细描述你们可以在他们的聊天中得知:

小汪说:“你旅游是去干啥啊?除了吃就是拍照,吃哪都可以吃啊!”

汪妻答曰:“刚恋爱的时候都叫人小甜甜,现在还凶人家。人家就是想要拍照嘛!”

这句话正好就中了小汪下的圈套,小汪讲道:“那好啊,我给你拍总行了吧!”

说完,小汪坐到电脑前。汪妻以为他在订绿皮火车票,内心暗喜。于是在一旁刷起了抖音。万万没想到,小汪却打开了pycharm,一旁刷抖音的汪妻并没有注意到。首先,小汪按win+R输入了cmd,然后在命令行输入了下面两段代码:

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install -i https://mirror.baidu.com/pypi/simple paddlehub

小汪默念道:“大哥是说要先安装paddlepaddle和paddlehub,看着是这两句。”小汪思索了一会儿:“抠图要怎么写来者?”他打开浏览器,输入了这个网址:别再自己抠图了,Python用5行代码实现批量抠图。“大哥写的太好了,一下就看懂了”,于是他继续往下写:

from PIL import Image
import paddlehub as hub
# 加载注释
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')
# 抠图,执行后会生成一个humanseg_output目录,png图片与原图片同名
results = humanseg.segmentation(data={'image':['master.jpg']})
# 读取png图片
im = Image.open('humanseg_output/master.png')
# 通道分离
r, g, b, a = im.split()
# 读取背景图片
bg = Image.open('bg.jpg')

# 获取粘贴位置
size1 = im.size
size2 = bg.size
im.resize((size2[1], size2[1]))
x = size2[0]-size1[0]
y = size2[1]-size1[1]

# 将png图片粘贴到背景上
bg.paste(im, (x, y), mask=a)
# 保存结果图
bg.save('result.jpg')

小汪运行了程序,发现居然报错了,跑来问我,发现是有模块没安装,他又在cmd中执行下列代码:

pip install pillow

这下运行没问题了,小汪摸着胡须,挠着头上所剩无几的头发,我估摸着,这一挠又挠死了几个字节的毛囊。他看着下面这几张图片(图中并非小汪女朋友):

在这里插入图片描述

小汪心中想着,这下应该没问题了,于是就把实现好的图片给女朋友看。汪妻大怒:“你不想带我去玩你就说啊,还要弄一个程序糊弄我!”,接着扇了小汪一大嘴巴子。小汪暗喜,可是小汪并没能高兴太久。汪妻刷到了这么一条抖音:“有个程序员男朋友是什么体验?巴拉巴拉~”,在看到代码的那一刻,汪妻觉得自己误会小汪了,于是又和小汪和好了,小汪含泪接受了女朋友的道歉。

出门后的小汪又找到我,我又给小汪出了个主意。小汪回到家,打开浏览器进入OpenCV官网:opencv.org/releases/ 。下载了对应版本的软件,然后安装,他在安装目录找到source\data\haarcascades目录,拿出了haarcascade_frontalface_default.xml文件,小汪有些迷惑,也没管太多,只是用浏览器打开了这个页面:OpenCv识别小罗伯特唐尼。心想,有啥不会的查一下就好了。

然后小汪在cmd执行下面两句代码:

pip install opencv-python
pip install opencv-contrib-python

然后小汪想着我说的话,把女朋友的脸换成一个丑一点的人就好了。又写下了如下代码:

import cv2

def face_detect(im):
    """检测人脸"""
    im = cv2.imread(im)
    grey = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    faces = face_detector.detectMultiScale(grey)
    # 返回一张人脸
    return faces[0]

写到这里,小汪发现haarcascade_frontalface_default.xml原来是在这里使用的,于是他把文件复制到项目下来。他心里想到:“这就可以检测人脸了!”。但是还不够,他继续写:

def change_face(im, face_loc, face_im):
    x, y, w, h = face_loc
	# 读取女朋友图片
    im = cv2.imread(im)
	
    # 读取要换的脸
    face_im = cv2.imread(face_im)
    face_im = cv2.resize(face_im, (w, h))

    # 人脸区域切换
    im[y:y + h, x:x + w] = face_im

    # 保存
    cv2.imwrite('result.jpg', im)

小汪又在main中写到:

if __name__ == '__main__':
    face = face_detect('master.jpg')
    change_face('master.jpg', face, 'face.jpg')

运行后结果图出来了,小汪点开结果图,大声笑了起来:

在这里插入图片描述

汪妻被笑声吸引,看到屏幕上的图片勃然大怒。崴了键盘,砸了屏幕,扯断了鼠标,还把小汪给胖揍了一顿,小汪血流不止,但是还止不住笑声。汪妻果断提出分手。到此事情算是画上了一个完美的句号。

五、事情结束了?

很多人疑惑,小汪为什么要这么做,大家都觉得小汪这样做很激进。但是其实小汪才是最清醒的那个,小汪在日记中写道:“别人笑我太疯癫,我笑他人看不穿”。就在这时,小汪的女朋友回来了:“我刚刚刷到了一个抖音,原来是我不懂程序员的幽默,我错了,你能原谅我吗?”