最近的瓜可谓真有意思,南山头铁鹅也默默吞下下了1000瓶老干妈。此时用这张1000张老干妈辣椒酱图片组成的企鹅来表达最适合不过了
我要咬人了
但是这个瓜却疑点重重:
- 1624万的大额广告合作,期间各项物料细节对接,这三个人就这么摆平了?
- 三个人据说靠游戏礼包来赚钱,这能赚多少?
- 三个人就算骗到钱了怎么不赶紧跑路,等着被抓。能骗到大厂上千万的智商怎么会乖乖坐以待毙?
现在擂台还在,腾讯并未撤诉也未道歉,装作一个憨憨仅仅是一个蓄力的过程。什么时候腾讯撤诉了,才代表腾讯认输了。所以好戏还在后头
1.千图成像
作为一个技术博主,分享技术才是我的初心,吃瓜的同时给大家介绍一下千图成像的原理,以及如何制作
- 千图成像:用N张图片拼凑成一张图片。
- 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块。
- 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录每张图片的特征用于成像,增加成像质量。
2.爬取图片素材
之前行哥已经已经分享过代码可以批量爬取图片,需要批量爬取图片源码或者应用程序可以看一下这篇推文
3.千图成像-Python代码
代码思路梳理
- 选好你需要拼凑的图片,将其切割为若干小块,切割的越细生成的图片效果会更好。
- 分别去我们之前保存的图片中找与与之最相似的,最后将其拼接完成。
- 颜色相似 这个应该不难理解,我在代码中实现了灰度图像和RGB通道图像的筛选方法:
灰度图像:直接计算所有像素灰度值的平均值,取最接近n个图像供后期再次筛选;
RGB通道:分别计算R,G,B的平均值,对于一个图像我们得到的是一个类似与[20, 30,40]的数组,然后我们计算欧式距离,取最接近n个图像供后期再次筛选。 - 结构相似 为什么还需要结构相似,举个例子:
如果单纯按照上述方法去判定相似,那上图中的图A和图B肯定是最相似的,所以我们不能单纯的因为两张图片中包含的颜色差不多就去判断为最相似,还需要去判断颜色的“位置”也要相似。
核心代码如下,在代码中需要修改图片素材路径和蒙版图片的路径,完整源码获取方式在文末查看:
from PIL import Image import os import numpy as np from tqdm import tqdm class Config: corp_size = 40 filter_size = 20 num = 100 class PicMerge: def __init__(self, pic_path, mode='RGB', pic_folder='wechat'): pass return picture def merge(self): pass return filter_ @staticmethod def rgb_mean(rgb_pic): pass return val def mapping_table(self, pic_folder): pass return results, pic_dic @staticmethod def pic_code(image: np.ndarray): pass return one_hot if __name__ == "__main__": P = PicMerge(pic_path='一行数据头像.png', mode='RGB') P.merge()
4.千图成像-软件使用
后来发现有更好用的软件也给大家介绍一下,那还写什么代码。软件名称叫做【FOTO-MASK—EDDA】大家可以在网上自行下载,也可以在文末查看行哥提供的下载方式。下面介绍下该软件的使用方式:
- 首先设置图片数据库
- 新建数据库,并选择图片素材路径
- 设置马赛克图片即图片盲板,依次设置马赛克图片路径,图片保存路径,图片素材库,马赛克参数,可重复次数、透明度等参数,最后点击Run即可
设置马赛克图片参数设置马赛克图片参数 - 最后结果如下
5.end
这是行哥使用Python获取所有微信好友图像组成的千图成像,看看能不能找到你哦。(什么,想要Python获取微信好友图像代码?)
参考:https://www.cnblogs.com/awesometang/p/12013595.html
对了,可以加下行哥微信好友,私聊回复「02」可以领取5T编程资料哦
完整源码和软件 :在公众号【一行数据】后台回复「南山头铁鹅」可以领取
祝三连的读者马上会遇到好运!!!!!