数据挖掘 (二)——基于 Python 的图片墙制作

导语

最近接了一个任务,就是将公司部门的员工参与团建活动的照片拼接在一张图片墙上面。为了完成这个任务, 我下载了许多应用,但是基本上只能支持九张照片的拼接,这显然无法满足我的需求。参考了很多网友的帖子,经过不懈努力,最后终于找到一个合适的解决方案——使用 Python + Pillow 实现照片墙。

实例演示

为了方便不熟悉python编程的同学使用,我特意将脚本打包成了可执行程序(exe),下面我先展示该exe文件的使用方式。


1)第一步

首先准备好待拼接的图片,数量尽量多一点,这样拼接之后才有视觉冲击感。我通过爬虫爬取了当当网上的图书照片(下篇文章介绍爬虫),并将其放在了 pictures 文件夹下,照片大概有个近一千张吧,部分如下所示,
在这里插入图片描述


2)第二步

运行程序 pictureWallTool.exe ,如下所示,
在这里插入图片描述

等待数秒之后,会弹出第一个对话框,让你选择存放图片源的文件夹,我选择了 pictures 文件夹,如下所示,
在这里插入图片描述

点击选择文件夹后,会弹出第二个对话框,让你选择保存照片墙的文件名,如下所示,

在这里插入图片描述

单击保存,可以看到立即生成了照片墙,如下所示,
在这里插入图片描述


3)第三步

最后就是愉快的看生成的结果怎么样啦!下图是用我的图片源生成的照片墙,

在这里插入图片描述

怎么样?是不是感觉很高大上!!哈哈。

DEMO 脚本中所使用到的一些 function 有不懂的可百度或谷歌,查看各自的详细描述。脚本在使用时与图片不需要非得放在一起,因为程序运行后会弹出对话框让用户选择,这个对话框会返回一个绝对地址。DEMO 程序的源代码、可执行文件及图片源文件夹可关注本小编的公众号,回复 关键词 图片墙制作 获取。


不足

  • 在代码中我只对图片进行了读取和缩放处理,并没有涉及拉伸、旋转、裁剪等变换,由于我设置待拼接的所有照片都为正方形,因此对于图片尺度比例差距比较大的图片,缩放后会出现变形。为了保证缩放之后的效果,可以利用opencv库添加更多的图片预处理措施。由于工作繁忙,这一块没有继续深入下去。

  • 此外,每行的图片数量的选择也很关键。例如 30 张图片可以分为 5×6 排布,31 张照片可以分布为 4×8 排布。最理想状态是脚本自动识别图片个数并合理分配,这块功能暂时没有写入 DEMO 中。

  • 最后,图片摆放的位置也可以变化,不一定非要正方形,比如可以摆成心形、圆形等等,以达到更好的视觉效果。这些都没有在程序中实现,有兴趣的朋友可以深入下去,将这个功能做的更加多样性。

【为什么学习数据挖掘】       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。 【超实用的课程内容】      本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。 本课程分为三大部分: 基础知识篇:主要讲解数据挖掘这项技能的基本工作流程和介绍和入门必须的基本技能Python语言的入门,带领大家了解数据挖掘的常见操作和基础知识。 数据采集篇:学习如何解决数据挖掘的数据来源问题,读取各类型不同的数据包括CSV,excel,MySQL进行数据采集的交互。 数据探索篇:本篇主要解决数据的预处理保证数据的质量并用常见数据挖掘算法进行特征提取,分析数据背后隐含的信息。 【报名须知】 课程采取录播模式,课程永久有效,可无限次观看 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 【如何开始学习?】 PC端:报名成功后可以直接进入课程学习 移动端:下载CSDN学院或CSDN
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页