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

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

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

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa1NGR1JsUW1qckd1OW92SURRejJPUlFFUjUyNXVTaWFtV2VxMlJjelk3OUJFNUhSbnhVUndRaWNnLzY0MA.jpg

我要咬人了

但是这个瓜却疑点重重:

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

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

1.千图成像

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

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

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa1E0cldTSXlxWlVNMXBzY3UwZUhCdUFaNmZXY1hvMGZWRnROTk5pYU9qSk1KcGVpYnJSeXRlaWFDUS82NDA.png

2.爬取图片素材

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

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9CbDd1bWRtd005OVpxMVVvMDBNdHdYakkySFdxZzExN0JDYWhwTUUwM25ZVkxlT2hOcEtya0RPUnA0NG1tS0Z0YWpIWVZpYkxuOGljcHJ5R0pQcVhUYXlRLzY0MA.png

3.千图成像-Python代码

代码思路梳理

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

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa2F6enA3V3FwVDlwV1FPMDJQRXpNS05ra3JhckhzdDZpYVJSa3ZpYXFzRWYyblM3YUFTaWJscXZMUS82NDA.png

  1. 分别去我们之前保存的图片中找与与之最相似的,最后将其拼接完成。
  • 颜色相似 这个应该不难理解,我在代码中实现了灰度图像和RGB通道图像的筛选方法:
    灰度图像:直接计算所有像素灰度值的平均值,取最接近n个图像供后期再次筛选;
    RGB通道:分别计算R,G,B的平均值,对于一个图像我们得到的是一个类似与[20, 30,40]的数组,然后我们计算欧式距离,取最接近n个图像供后期再次筛选。
  • 结构相似 为什么还需要结构相似,举个例子:

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa3RwazlWODQweVFmVmljem9HTm1VNHlIV216QWlheWFoeTNrMVJSUHdDVzFaVnFiVHZ3aWJ3bWlhZFEvNjQw.png

如果单纯按照上述方法去判定相似,那上图中的图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. 首先设置图片数据库aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa3NuYnpzeVVTRnNjMXVpYnR0bDdrS1VOWTNvQzR6RlRGS2ljTWVncHpjSWc3UU1zMnNpY0NiOVFody82NDA.png
  • 新建数据库,并选择图片素材路径aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa0ZNUERHeTRwUm0xYXJOSVlwVzE4NHp4c0kxR0Y4cmx4OFZQZ0tVZEcwdmliUnFpYWljSDBJVDNyQS82NDA.png
  1. 设置马赛克图片即图片盲板,依次设置马赛克图片路径,图片保存路径,图片素材库,马赛克参数,可重复次数、透明度等参数,最后点击Run即可aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa2o0eUhpYWxSTEFsMDZPcDcxWGxVVzY2NTFDTXdrc04weWVoaWFQSnIzcnBFWGg0ZEFNUHQyeHd3LzY0MA.png
    设置马赛克图片参数aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa1ExVlZnRlNBenc1Qm9lZ05lUFJxcE1icWljbldyQjVrRldpYmljSzNTVG5YNGdOd01Vamg1OTlady82NDA.png设置马赛克图片参数aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa1FQR3R3SGh6aWFJdERZVHY1S2dFb211cTY0OUJHUmlhbnlzNmJhVnJrOWliNXpNNnlyTEFHWXNkQS82NDA.png
  2. 最后结果如下

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa2dKMjVpYlZzS2t6V3lGVENZb0tZSU5VRUJXUzJUbzBsdVVNeEhkQmVSVjlDY3dVa0puVkpsOWcvNjQw.jpg


5.end

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

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy94azlvdDVzVTV6aEx3MlRma0xZUzljNlRLeFM2TXdOa3J1Y3NUN2R3RWNFenFhN0VrMHF1cnc3TWlieVFvY3pOc3RMRUlpYlVPS0Q2UXU2QXZweU9JRGh3LzY0MA.jpg


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


对了,可以加下行哥微信好友,私聊回复「02」可以领取5T编程资料哦

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6amlhR3ZEeDhxUUFIQjVUOUxEaWJPWXZEakpNSks3MWEzUmRLbEdYYTNOMEpIYjN2RGlhNURLZlA2VmdSWFhGbnJZa2Q4MWxWcVlsSFBoZy82NDA.pngaHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy94azlvdDVzVTV6aWFrUEhDRzdOcWhud0pvZVl0RGxDUzFFaWNuNm9CME9VWUZUWHVraWEzeXAyeWpPSDVIcXdlYTZqNGUxUW5wNW9KYW8xdTJ1VmliTzRaV2cvNjQw.png

完整源码和软件 :在公众号【一行数据】后台回复「南山头铁鹅」可以领取

祝三连的读者马上会遇到好运!!!!!

相关文章
|
11天前
|
存储 数据库连接 API
Python环境变量在开发和运行Python应用程序时起着重要的作用
Python环境变量在开发和运行Python应用程序时起着重要的作用
55 15
|
4天前
|
人工智能 安全 Java
Java和Python在企业中的应用情况
Java和Python在企业中的应用情况
28 7
|
11天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
14天前
|
数据库 Python
Python 应用
Python 应用。
37 4
|
23天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
66 6
|
24天前
|
数据采集 数据安全/隐私保护 开发者
非阻塞 I/O:异步编程提升 Python 应用速度
非阻塞 I/O:异步编程提升 Python 应用速度
|
11天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
2天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
14 8
|
3天前
|
机器人 计算机视觉 Python
Python作为一种高效、易读且功能强大的编程语言,在教育领域的应用日益广泛
Python作为一种高效、易读且功能强大的编程语言,在教育领域的应用日益广泛
16 5
|
2天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
11 3
下一篇
无影云桌面