# puzzle
**Repository Path**: LucaOAI/puzzle
## Basic Information
- **Project Name**: puzzle
- **Description**: 使用5000张二次元图片生成海报大图,计算颜色相似度。Make a poster with 5000 pictures,Python spider and Color similarity measure
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-05-03
- **Last Updated**: 2022-05-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于 hsv 的马赛克拼图效果
[](https://travis-ci.org/ThomasHuai/puzzle)
文章链接:[利用爬虫技术能做到哪些很酷很有趣很有用的事情?](https://www.zhihu.com/question/27621722/answer/269085034)
## 2018-5-30 更新内容
- 修复了生成失败中断的问题
- 不再读取数据库中的非图片文件
- 自定义最低相似标准 -far (默认1000)
- 修复命令行参数类型错误(竟然没人发现)。。。
- 爬虫依旧有效
## 2018-4-20 更新内容
- 修复抓取路径到 2018-4-20 可用
- 使用 ImagesPipeline 下载图片
- 抓取时不处理图片(对应一些人想要原图的要求)
- 考虑到 opencv 库比较难安装,处理图片改为使用 Pillow(PIL)库。
- 请勿占用站长大量带宽,谢谢。
## 一、安装环境 (python3.6 or upper)
### 1.安装 Scrapy 爬虫框架 (install Scrapy 1.4 upper)
`pip install Scrapy`
推荐使用whl进行安装 [点击此处](https://www.lfd.uci.edu/~gohlke/pythonlibs/)
### 2.安装 numpy 科学计算库 (install numpy)
`pip install numpy`
### 3.安装 Pillow 图像处理库 (install Pillow)
`pip install Pillow`
推荐使用 wheel 来安装 Pillow [点击此处]("https://www.lfd.uci.edu/~gohlke/pythonlibs/")
## 二、使用 puzzle 生成拼图 (use puzzle.py create mosaik puzzle)
### 爬取图片(catch images)
* 图片默认存储路径是 database/full 文件夹,图片名为hash值
* 自定义路径请在 setting.py 中进行修改
* 自定义文件名请在 pipelines.py 中重构 ImagesPipeline 类
`python run.py` or ``scrapy crawl images` or run catchImage.bat
### 创建拼图图片 (create puzzle image)
- 注意,路径后面要有反斜杠
`python puzzle.py -i test.jpg -d D:/acg/img/ -o output/` or run start.bat
### 命令行参数说明(Command line parameters)
* -s -- save 已经存在output文件夹已经有马赛克图片,快速生成图片 Created faster when there have mosaik pictures
* -i -- input 原始图片路径 input image path
* -d -- database 爬虫图片数据集 your image database
* -o -- output 马赛克图标生成路径 output mosaik pictures path
* -is -os 输入(马赛克块)/ 输出(生成图) 图片尺寸 input size / output size
* -r --repate(int) 重复(建议在图片集少的时候设置) mosaik repate (When image is not enough)
* -far --far(int) 相似度(可以在无法构造图片的时候适当增大,默认1000) masaik difference
test.jpg

output jpg

# 已知问题
- 少数图片,图片后缀名错误,比如说jpg图片修改后缀名为png进行伪造将会影响 Pillow 读取像素信息。(4-20 更新已经跳过影响图片)
- 效果较差的原因有可能是,图片集数量不够(建议5000之内设置重复),黑白构图图片太多会直接影响 hsv 结果,图片单一,无法就近匹配。
- 更多优化建议,bug信息请在评论区回复,感谢支持。