All Projects → NoisyWinds → Puzzle

NoisyWinds / Puzzle

Licence: apache-2.0
🌷 使用5000张二次元图片生成海报大图,计算颜色相似度。Make a poster with 5000 pictures,Python spider and Color similarity measure

Programming Languages

python
139335 projects - #7 most used programming language

基于 hsv 的马赛克拼图效果


Build Status


文章链接:利用爬虫技术能做到哪些很酷很有趣很有用的事情?


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进行安装 点击此处


2.安装 numpy 科学计算库 (install numpy)


pip install numpy


3.安装 Pillow 图像处理库 (install Pillow)


pip install Pillow


推荐使用 wheel 来安装 Pillow 点击此处



二、使用 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


image

output jpg

image


已知问题

  • 少数图片,图片后缀名错误,比如说jpg图片修改后缀名为png进行伪造将会影响 Pillow 读取像素信息。(4-20 更新已经跳过影响图片)
  • 效果较差的原因有可能是,图片集数量不够(建议5000之内设置重复),黑白构图图片太多会直接影响 hsv 结果,图片单一,无法就近匹配。
  • 更多优化建议,bug信息请在评论区回复,感谢支持。
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].