其实这篇文章的标题已经很直接很暴力的告诉了你我做了什么,但我慢慢来
把你的女朋友放在联排别墅里:
这篇文章的封面来自杜鲁门的世界,之所以这样做是因为电影的海报:
是的,没错,这部电影的海报看起来很高大上,他把照片拼接成一张大图。
然而,如果你仔细观察,靠近耳朵,你会发现他实际上改变了图片的色调以适应。
我非常喜欢这部电影,我一直记得这张海报。毕业后和父母一起旅行的时候,突然想拍一张像这张海报一样的照片,于是就开始做。
在这篇文章中,我不会解释代码,也不会放代码在线图片合成,这篇文章是预览,让你看到我所做的功能,并简要描述我做了什么。
要制作这样的照片,首先必须拥有一个庞大的照片库。这里我用的是自己手机的照片,一共1400多张(是的,我大学四年的照片有1400多张)。由于照片涵盖了这么多场景,所以色彩也很丰富。
第一步是对照片进行预处理,得到照片的颜色信息。这里我没有使用knn来获取出现次数最多的颜色,而是选择通过PIL库中的()方法获取他所有的颜色,然后一个map(其实是两个但是我用了if循环的第二个)来获取三个主要的这张照片的颜色,有兴趣的可以私信我。
这些预处理信息将被放置在一个 json 文件中。比如我的照片信息如下:
有了这个文件,就好办了,给一张你想要的照片,剪下来,然后从这个json文件中为每一个小块找到最接近的rgb值,然后从列表中随机选择一张照片,一步一步就可以了步。
其实只有两步在线图片合成,但是单线程做是合理的,所以我使用多线程进行预处理和合成。我的电脑4核8线程,总时间还是20多分钟。
然后直接上图:
比如这张图是我爸,请不要人肉我爸,谢谢,然后用我的照片合成:
放大查看:
所以效果其实还不错。
所以回到本文的封面,我也合成了一个:
由于我没有很多蓝色的照片,难免会有重复,但组成金凯瑞的那张看起来还是很不错的。让我们放大看看:
(如果你仔细看,你会看到很多我女朋友的照片)
效果一般都不错。写这篇文章的时候,其实是想看看回复,是贴代码还是写个软件来做这个功能。
最后,给你一个红利:
为了他,我还写了一段视频截图的代码。
最后不得不@求个赞,毕竟是唯一关注我的大佬。
嘿
我觉得我可以为电影制作海报。
如果有人需要请联系我
女士们先生们,我将在几天后发布代码,因为它现在写得非常糟糕。如果您需要此类图片,请直接与我联系,我可以直接为您做。
大佬们,我贴出来了: