python 马赛克拼图_用几十万张图片来拼图!Open CV牛逼不是没有道理的!马赛克拼图...

dab1d83c73a819ec394e6f707a698234.png

这是最终得到的效果,如果你的图片集不同,或者参数设置不同,效果也会有差别。

4a4c2661a1eacbfc4a9357cc624b7be2.png

进群:548377875即可获取数十套pdf哦!源码就不分享给大家了!

fb9248ea6f666f76fbe66f8ec7e1b08d.png

1,收集图片素材

要做出上述的效果来,首先就需要大量的图片,图片少了,效果肯定不好,容易重复,需要的像素值找不到相近的等等弊端。人工收集图片的话肯定是非常慢的,如果要手工下载图片,那至少要找图片找很多天了。这个时候一般有两个解决途径:

爬取图片

用网络爬虫从别的网站上爬取图片是个不错的选择,也可以用python来实现。

下载图片数据集

网络上有别人已经整理好的图像数据集,我使用的是斯坦福大学李飞飞制作的imagenet数据集。这个数据集是计算机视觉领域常用的一种数据集,它的训练集大概有100多个g,测试集有10多个g,只是测试集就有10万张图片,够本工程使用了。所以我下载的是他的测试集。网速快的话可以十来分钟就下载下来。图片数据集的迅雷下载链接

c441de2f5eb60ca69f39631d3ece0811.png

3,建立索引

建立索引就是保存每张图片出现次数最多的像素值然后保存到文件中。格式为:

文件名称:b,g,r

建立好索引文件之后,就可以知道每个图片和他们最常见的颜色。在使用这些图片的时候,就可以读取整个索引文件,然后定位到图片文件本身。试想一下,如果没有这些索引文件,那么生成一次马赛克拼图就要求一次所有图片的最多像素,太多冗余了。下面是代码:

1aae1ae71e2a363296901d84ae97173d.png

生成的索引文件格式是这样的:

556eed96da8cbe96ee47291e5a3771cd.png

4,画图

首先是读取步骤3生成的索引文件。然后可以选择打乱它,以免一样的图片聚集出现在一个位置附近。

b755190f4d63885d6f354f02f65db5cf.png

355851b76fad1170c2d5195d6443f4d4.png

大功告成。

下面是我的时间统计:

下载图片用了三个多小时

图片预处理用了一个多小时

建立索引大概需要一个多小时

之后画每个一万个像素点左右的图片大概需要三分钟的时间

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值