当前位置: 首页 > 后端技术 > Python

用Python搞定全网最全的松鼠表情包(第三弹)

时间:2023-03-26 13:10:18 Python

根据之前的文章,我们得到了大量包含松鼠的图片,接下来我们对这些图片做一些简单的处理,添加与图片匹配的文字或生成gif动画。文字添加迅哥曾经说过,没有文字的表情包是没有灵魂的。那么今天我们就用Python给图片添加文字,先拍一张珍妮龟的照片。这里我们使用PIL库将指定的文字添加到图片的指定位置,使用truetype函数设置字体类型和大小,使用text函数添加指定颜色的文字。defadd_font(text):font=ImageFont.truetype('simhei.ttf',70)img=Image.open('a.jpg')draw=ImageDraw.Draw(img)draw.text((200,400),text,font=font,fill='white')img.save('add_font.jpg')这些图片配上匹配的文字后,有一种画龙点睛的错觉。你可能会想,一个一个加文字和使用P图有什么区别。巧合的是,去年有篇论文专门给表情添加对应的文字,用OCR提取表情中的文字,用对抗生成网络训练这些去掉文字的表情,输入新的时候可以用这个网络图释。如果能给出符合表达的文字,论文传送门放在最下方。在做动画之前,我们通过切图得到珍妮龟的图片,这是一个大粒度的分类。现在我们要做一个小粒度的分类,即根据图片的相似度,将相似的图片分成一组,做成一个运动图片(这些相似的图片就是视频中的连续图片)。我们可以使用平均散列法来计算图片的相似度。具体可以参考朋友圈发的假图。我找到了!本文通过比较图片的指纹来判断相似度。此外,我们还可以利用CV2的模板匹配算法来过滤相似图片。这样就可以完成小粒度的筛选,我们可以利用这些相似的图片通过PIL库生成gif动画。defmake_gif():gif_images=[]img_paths=os.listdir('gif')img_paths=[os.sep.join(['gif',i])foriinimg_paths]forpathinimg_paths:gif_images.append(imageio.imread(path))imageio.mimsave("a.gif",gif_images,fps=4)至此,用Python获取最全的珍妮龟表情包,全系列结束!