利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

  • A+
所属分类:python基础入门

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

今天,带大家学习如何使用 Python 创建照片马赛克。我们将目标图像划分成较小图像的网格,并用适当的图像替换网格中的每一小块,即可创建原始图像的照片马赛克。比如这样:

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

本实验源自 异步社区的《Python极客项目编程》第七章,感谢异步社区

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

环境

  • Python

  • Xface 终端

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

图 7-2 中的图像展示了如何将原始图像分割成小块的网格。x 轴表示网格的列,y 轴表示网格的行。

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

5.5 创建图像网格

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

5.7 添加命令行选项

该程序的 main() 方法支持这些命令行选项:

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

括三个必需的命令行参数:目标图像的名称,输入图像文件夹的名称,以及网格尺寸。第四个参数是可选的文件名,如果省略该文件名,照片将写入文件 mosaic.png 中。

5.8 控制照片马赛克的大小

要解决的最后一个问题是照片马赛克的大小,如果基于目标图像中匹配的小块,盲目地将输入图像粘贴在一起,就会得到一个巨大的照片马赛克,比目标图像大得多。为了避免这种情况,调整输入图像的大小,以匹配网格中每个小块的大小(这样做还有一个好处,可以加快平均 RGB 的计算,因为用了较小的图像)。

main() 方法也进行这样的处理:

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

结果

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: