- A+
具体制作流程:
-
使用 Scrapy 框架爬取5000张二次元图片
-
使用 opencv 批量格式化图片
-
将图片按照 HSV 欧式距离排序重新组合图片,实现效果
-
或者借助软件类似 Foto-Mosaik-Edda 实现相同效果
一、安装开发环境
-
安装 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
三、生成图片
软件下载地址:Welcome | FMEdda | Foto-Mosaik-Edda
1.创建一个图片数据库
2.导入图片
3.导入过程中
4.创建一个马赛克风格图片
5.打开原图
6.选择已经上传的数据库
7.生成完成
简单高效的平民玩法到此结束。
逼格不够?
下面分享用 Python 代码实现该软件的马赛克拼图效果。
一、安装依赖
-
安装图像处理库 pillow
pip install pillow
二、使用 Python 做到马赛克拼图效果
1.使用 rgb 平均数实现类似效果
2.完成多线程处理图片
取 rgb 平均值:
计算近似图片
非洲鸟结果图:
图片重复比较多,效果一般,颜色并不能准确的识别,偏暗的颜色有更大的权重,所以不是非常理想,之后更新了代码。
1.使用 hsv (颜色空间)完成颜色精准适配
2.自定义图片重复数量
3.增加命令行进度条,增加命令行可自定义参数
4.创建完成拼图数据库后可以直接合成,不用重复执行创建
5.修复代码,提高执行效率
hsv (颜色空间模型)
hsv 两点间距离公式(欧式距离):
核心方法,使用 hsv 平均值代替二更的 rgb 平均值,效果更好。
main.py
核心方法,使用欧式距离求cost最小值
全部代码
/main.py
命令行
-
-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张不重复结果图
5000张宅图数据集压缩包,和github仓库正在路上。。。
原创不易,欢迎点赞。
还有,鸟厨是什么啊,听不懂你们在说什么,四斋蒸鹅心。
学习Python,最常见的坑有这些:
1.很难找到合适且优质的学习资源,难以下手,或者随便找一些材料开始学习,极其容易从入门到放弃;
2.遇到问题不知道如何寻找解决办法,甚至连问题都描述不清楚,经常被一些细小的问题卡住,学习效率不高;
3.在理论学习中无法自拔,学习很久之后,发现还是不知道如何在实际的项目中去应用,缺乏解决问题的能力;
4.看到别人的案例觉得好像是那么回事,但是自己去写代码的时候依然很困难,无法训练编程思维。
你是否也遇见类似这样的情况呢?别担心,小编给你准备了一部分精讲的学习视频,想要获取的小伙伴私信我。私信关键词:001,系统检测会自动发送。