Code Monkey home page Code Monkey logo

puzzle's Introduction

基于 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信息请在评论区回复,感谢支持。

puzzle's People

Contributors

noisywinds avatar zhangxuri avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.