用Python绘制谷爱凌的卡通动漫形象,太惊艳了

2022-04-13 19:35:29 浏览数 (1)

最近各大社交媒体可是被谷爱凌给刷屏了,就在2月8日上午,她在北京冬奥会自由式滑雪女子大跳台比赛中获得冠军,以从未在赛场尝试过的高难度动作获得了全场最高分。

不仅如此,谷爱凌在17岁时就已经拥有了六十多枚奖牌,仅在2021-2022赛季世界杯就获得了6金2银1铜共9枚奖牌。除了滑雪,还会钢琴、马术、芭蕾,因为喜欢跑步,还差点成为田径运动员

她还是个学霸,以1580分的SAT(美国高中生大学入学考试,满分1600)成绩被斯坦福大学录取。她还涉足时尚界,成为众多时尚品牌和刊物的宠儿。

这不是妥妥的“别人家的孩子”么,怪不得她的母亲也被调侃为是“海淀区妈妈的天花板”。今天小编来带领大家通过Python来绘制谷爱凌的卡通形象图片,最后绘制出来的效果如下图所示

下面我们来看一下具体的代码

代码语言:javascript复制
raw_img = cv2.imread(fn_raw)
img_resized = cv2.resize(raw_img, (width, height))
cv2.imshow('img_resized', img_resized)

img_gray = cv2.cvtColor(img_resize, cv2.COLOR_BGR2GRAY)
img_blur = cv2.medianBlur(img_gray, 5)

首先我们将输入的图片转换成灰度图,然后进行中值滤波的处理,将每个像素用领域(以当前像素为中心的正方形区域)像素的中值代替,去除掉一些噪声,避免边界点太多,下面便是边界检测了

代码语言:javascript复制
img_canny_edge = cv2.Canny(img_blur, 80, 160, apertureSize=3)

output

接下去是对边界进行二值化处理,代码如下

代码语言:javascript复制
_, img_masked = cv2.threshold(img_canny_edge, 100, 255, cv2.THRESH_BINARY_INV)
img_masked = cv2.cvtColor(img_masked, cv2.COLOR_GRAY2BGR)

output

最后就是对图像进行平滑的处理,并且将平滑处理后的图像和前面得到的边缘进行合并,得到最终的卡通形象的图片,代码如下

代码语言:javascript复制
img_cartoon = cv2.bitwise_and(img_cartoon, img_masked)
cv2.imshow('cartoon-'   edge, img_cartoon)
cv2.imwrite("cartoon-"   fn_raw, img_cartoon)
cv2.waitKey()

output

0 人点赞