拼图工具 Gaps

使用 Gaps 来制作和完成拼图

Gaps 的介绍与安装

这是 Gaps 的链接:https://github.com/nemanja-m/gaps

  1. 获取项目源码

    1
    git clone https://github.com/nemanja-m/gaps.git
  2. 安装依赖

    使用 Python3

    1
    python3 -m pip install -r requirements.txt

    在安装的时候会报如下的一个错

    报错页面

    这是因为requirements.txt里的opencv-python版本太低了,你可以安装一个其他的版本,这里安装最新的版本,至少我用着没有上面问题,如果你遇到了兼容性的问题,可以安装版本较低的opencv-python,接着执行:

    1
    python3 -m pip install opencv-python
  3. 继续安装依赖

    1
    sudo apt-get install python-tk
  4. 安装工具

    1
    python3 setup.py install

使用 Gaps 制作拼图

使用create_puzzle脚本创建拼图,创建拼图的式子是这样的:

1
create_puzzle source --size=? --destination=?

其中的参数如下:

1
2
3
4
5
6
位置参数:
source 输入文件的路径

可选参数:
--destination 输出文件的路径
--size SIZE 拼图的一块(默认值:28 像素,最小:28 像素,最大:64 像素,这个值越小分出来的图片碎片越多)

使用源码里自带的图片来试一试:

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 > 存储 > 选择仅限图像 > 保存即可