宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

  • A+
所属分类:编程语言

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

具体制作流程:

  • 使用 Scrapy 框架爬取5000张二次元图片

  • 使用 opencv 批量格式化图片

  • 将图片按照 HSV 欧式距离排序重新组合图片,实现效果

  • 或者借助软件类似 Foto-Mosaik-Edda 实现相同效果

一、安装开发环境

  1. 安装 Scrapy 爬虫框架

pip install Scrapy

windows 安装可以:https://sourceforge.net/projects/pywin32/

2. 推荐使用 wheel 来安装 opencvhttps://www.lfd.uci.edu/~gohlke/pythonlibs/

3.安装 numpy 科学计算库

pip install numpy

4. 初始化一个 Scrapy 项目 acg

scrapy startproject acg

二、爬取图片

  • 更新爬取网站为 http://www.acg.fi(原先为 http://www.52dmtp.com)

  • 添加仿浏览器头部

  • 为新萌修复路径

更新可用:

  • 1.捕获http异常,防止中断

  • 2.图片数据读取判断,防止入坑

  • 3.爬取二级页面分页

以下代码主要实现操作:

  • 中间裁剪

  • 统一大小

  • 下载图片

  • 重复抓取

/image.py

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

三、生成图片

软件下载地址:Welcome | FMEdda | Foto-Mosaik-Edda

1.创建一个图片数据库

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

2.导入图片

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

3.导入过程中

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

4.创建一个马赛克风格图片

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

5.打开原图

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

6.选择已经上传的数据库

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

7.生成完成

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

简单高效的平民玩法到此结束。

逼格不够?

下面分享用 Python 代码实现该软件的马赛克拼图效果。

一、安装依赖

  1. 安装图像处理库 pillow

pip install pillow

二、使用 Python 做到马赛克拼图效果

1.使用 rgb 平均数实现类似效果

2.完成多线程处理图片

取 rgb 平均值:

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

计算近似图片

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

非洲鸟结果图:

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

图片重复比较多,效果一般,颜色并不能准确的识别,偏暗的颜色有更大的权重,所以不是非常理想,之后更新了代码。

1.使用 hsv (颜色空间)完成颜色精准适配

2.自定义图片重复数量

3.增加命令行进度条,增加命令行可自定义参数

4.创建完成拼图数据库后可以直接合成,不用重复执行创建

5.修复代码,提高执行效率

hsv (颜色空间模型)

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

hsv 两点间距离公式(欧式距离):

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

核心方法,使用 hsv 平均值代替二更的 rgb 平均值,效果更好。

main.py

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

核心方法,使用欧式距离求cost最小值

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

全部代码

/main.py

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

命令行

  • -s -- save 已经存在output文件夹已经有马赛克图片,快速生成图片

  • -i -- input 原始图片路径

  • -d -- database 爬虫图片数据集

  • -o -- output 马赛克图标生成路径

  • -is -os 输入(马赛克块)/ 输出(生成图) 图片尺寸

  • -r --repate(int) 重复(建议在图片集少的时候设置)

python puzzle.py -i test.jpg -d database/ -o output/

上传一张5000张不重复结果图

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

5000张宅图数据集压缩包,和github仓库正在路上。。。

原创不易,欢迎点赞。

还有,鸟厨是什么啊,听不懂你们在说什么,四斋蒸鹅心。

学习Python,最常见的坑有这些:

1.很难找到合适且优质的学习资源,难以下手,或者随便找一些材料开始学习,极其容易从入门到放弃;

2.遇到问题不知道如何寻找解决办法,甚至连问题都描述不清楚,经常被一些细小的问题卡住,学习效率不高;

3.在理论学习中无法自拔,学习很久之后,发现还是不知道如何在实际的项目中去应用,缺乏解决问题的能力;

4.看到别人的案例觉得好像是那么回事,但是自己去写代码的时候依然很困难,无法训练编程思维。

你是否也遇见类似这样的情况呢?别担心,小编给你准备了一部分精讲的学习视频,想要获取的小伙伴私信我。私信关键词:001,系统检测会自动发送。

宅男用Python做了这个事情!女朋友在被窝偷偷哭泣

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: