使用 Gaps 来制作和完成拼图
Gaps 的介绍与安装
这是 Gaps 的链接:https://github.com/nemanja-m/gaps
获取项目源码
1
git clone https://github.com/nemanja-m/gaps.git
安装依赖
使用 Python3
1
python3 -m pip install -r requirements.txt
在安装的时候会报如下的一个错
这是因为
requirements.txt
里的opencv-python
版本太低了,你可以安装一个其他的版本,这里安装最新的版本,至少我用着没有上面问题,如果你遇到了兼容性的问题,可以安装版本较低的opencv-python
,接着执行:1
python3 -m pip install opencv-python
继续安装依赖
1
sudo apt-get install python-tk
安装工具
1
python3 setup.py install
使用 Gaps 制作拼图
使用create_puzzle
脚本创建拼图,创建拼图的式子是这样的:
1 | create_puzzle source --size=? --destination=? |
其中的参数如下:
1 | 位置参数: |
使用源码里自带的图片来试一试:
1 | create_puzzle images/starry.jpg --size=60 --destination=puzzle.jpg |
使用ristretto
或者firefox
查看图片:
1 | ristretto puzzle.jpg |
完成拼图
使用gaps
脚本,完成拼图的式子是这样的:
1 | $ gaps --image=?--generations=? --population=? --size=? |
--szie
是一个比较重要的参数,如果没有明确提供参数--size
,它会自动检测块大小
Option | Description |
---|---|
–image | 指向拼图的路径 |
–size | 拼图块的像素尺寸 |
–generations | 遗传算法的代的数量 |
–population | 个体数量 |
–verbose | 每一代训练结束后展示最佳结果 |
–save | 将拼图还原为图像 |
完成我们在上面制作的拼图:
1 | gaps --image=puzzle.jpg --generations=20 --population=600 --size=60 |
如果结果不理想,可以尝试改变--generations
和--population
,这里把--population
调的很大,实际上简单的拼图用不了这么大
附:制作拼图
你可以在photoshop
里把打乱的图片分成小片(在右侧工具栏选择切片工具 > 在图片上右键选择划分切片):
确定后,选择文件 > 导出 > 存储为 web 所用格式 > 选择 JPEG > 存储 > 选择仅限图像 > 保存即可