今天,带大家学习如何使用 Python 创建照片马赛克。我们将目标图像划分成较小图像的网格,并用适当的图像替换网格中的每一小块,即可创建原始图像的照片马赛克。比如这样:
本实验源自 异步社区的《Python极客项目编程》第七章,感谢异步社区
环境
Python
Xface 终端
图 7-2 中的图像展示了如何将原始图像分割成小块的网格。x 轴表示网格的列,y 轴表示网格的行。
5.5 创建图像网格
5.7 添加命令行选项
该程序的 main() 方法支持这些命令行选项:
括三个必需的命令行参数:目标图像的名称,输入图像文件夹的名称,以及网格尺寸。第四个参数是可选的文件名,如果省略该文件名,照片将写入文件 mosaic.png 中。
5.8 控制照片马赛克的大小
要解决的最后一个问题是照片马赛克的大小,如果基于目标图像中匹配的小块,盲目地将输入图像粘贴在一起,就会得到一个巨大的照片马赛克,比目标图像大得多。为了避免这种情况,调整输入图像的大小,以匹配网格中每个小块的大小(这样做还有一个好处,可以加快平均 RGB 的计算,因为用了较小的图像)。
main() 方法也进行这样的处理:
结果