专栏首页一行数据吞了1000瓶老干妈的南山头铁鹅,Python制作千图成像(附上源代码和应用程序)

吞了1000瓶老干妈的南山头铁鹅,Python制作千图成像(附上源代码和应用程序)

最近的瓜可谓真有意思,南山头铁鹅也默默吞下下了1000瓶老干妈。此时用这张1000张老干妈辣椒酱图片组成的企鹅来表达最适合不过了

我要咬人了

但是这个瓜却疑点重重:

  1. 1624万的大额广告合作,期间各项物料细节对接,这三个人就这么摆平了?
  2. 三个人据说靠游戏礼包来赚钱,这能赚多少?
  3. 三个人就算骗到钱了怎么不赶紧跑路,等着被抓。能骗到大厂上千万的智商怎么会乖乖坐以待毙?

现在擂台还在,腾讯并未撤诉也未道歉,装作一个憨憨仅仅是一个蓄力的过程。什么时候腾讯撤诉了,才代表腾讯认输了。所以好戏还在后头

1.千图成像

作为一个技术博主,分享技术才是我的初心,吃瓜的同时给大家介绍一下千图成像的原理,以及如何制作

  • 千图成像:用N张图片拼凑成一张图片。
  • 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块。
  • 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录每张图片的特征用于成像,增加成像质量。

2.爬取图片素材

之前行哥已经已经分享过代码可以批量爬取图片,需要批量爬取图片源码或者应用程序可以看一下这篇推文

3.千图成像-Python代码

代码思路梳理

  1. 选好你需要拼凑的图片,将其切割为若干小块,切割的越细生成的图片效果会更好。

image

  1. 分别去我们之前保存的图片中找与与之最相似的,最后将其拼接完成。
  • 颜色相似 这个应该不难理解,我在代码中实现了灰度图像和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】大家可以在网上自行下载,也可以在文末查看行哥提供的下载方式。下面介绍下该软件的使用方式:

  1. 首先设置图片数据库
  • 新建数据库,并选择图片素材路径
  1. 设置马赛克图片即图片盲板,依次设置马赛克图片路径,图片保存路径,图片素材库,马赛克参数,可重复次数、透明度等参数,最后点击Run即可

设置马赛克图片参数

设置马赛克图片参数

  1. 最后结果如下

5.end

这是行哥使用Python获取所有微信好友图像组成的千图成像,看看能不能找到你哦。(什么,想要Python获取微信好友图像代码?

参考:https://www.cnblogs.com/awesometang/p/12013595.html

本文分享自微信公众号 - 一行数据(rowdata),作者:行哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3秒爬取百度图片网站,批量下载各种图片

    行哥写了30行Python代码来帮你解决这个问题,现在你只要对代码进行复制、粘贴、运行三连就可以爬取你想要的图片。

    行哥玩Python
  • 10行python代码制作笑死人不偿命的倒放gif

    现在网络平台上各种有很多倒放视频和倒放gif,其中有些非常的有意思,例如以下图片,慎点,笑死人行哥不偿命

    行哥玩Python
  • 手把手教你把Python代码转成exe

    很多刚入门的盆友都有疑惑怎么把Python代码转成可执行的exe?,这里行哥统一解决一下这个问题

    行哥玩Python
  • 科技巨头们的并购:SAP最谨慎Oracle最地土豪

    如果你是一个创业者,你就要在舞台上飙出你的高音。 创业者手心冒汗的站在演讲台上,盯着一桌子有能力为伟大梦想注入活力又或者是会枪决梦想的人。做完一个自信的介绍...

    人称T客
  • SpringBoot+MyBatis+Spring 技术整合实现商品模块的CRUD操作

    写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地...

    用户5546570
  • 3ds Max 中的导航控件ViewCube入门介绍

    Zoctopus
  • 【LeetCode题解-012】Integer to Roman

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and ...

    周三不加班
  • 内网穿透 TCP打洞 【c语言实现】

    上篇文章中做了UDP打洞,这篇当然就会是TCP打洞了,两个处于不同内网的两台机器如何通过TCP/IP协议进行链接通讯呢?这其实跟UDP打洞差不多,基本步骤是这个...

    战神伽罗
  • dotnet core 微服务教程

      --no-https :表示这个应用运行的时候不需要https证书,这是为了部署时方便

    Vincent-yuan
  • Golang语言--映射

    Go编程提供另一个重要的数据类型是映射,唯一映射一个键到一个值。一个键要使用在以后检索值的对象。给定的键和值,可以在一个Map对象存储的值。值存储后,您可以使用...

    李海彬

扫码关注云+社区

领取腾讯云代金券