前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 将图像转换为乐高积木风格图片(下)

python 将图像转换为乐高积木风格图片(下)

作者头像
叶子陪你玩
发布2021-04-29 14:50:25
1.2K0
发布2021-04-29 14:50:25
举报

在之前一篇文章,

python 将图像转换为乐高积木风格图片(上)

留了个坑,今天来填完它。


之前的速度不是很快,这次使用了numpy 来计算,速度已经比较快了,传入图片,到生成马赛克图,乐高积木图以及生成零件清单不会超过 10 s 钟。

先看看效果:

图片效果


再放大一点

马赛克图片就省略了,之前已经看过了。下面再看看生成的零件清单。

零件清单



实现过程


最难的其实就是颜色对比,实际图片像素颜色种类是非常多的,理论上可以有256*256*256种,而乐高图片只有50多种,如何让每种像素值都匹配到对应的图片呢。

方法就是找到最接近值,比如在一个列表里如何找到最接近值呢?

将目标数与其列表中的每一个数相减,并对差值取绝对值,最后在绝对值中找最小数。


单个数的原理明白了,颜色值 RGB 就容易理解了,RGB值是一个列表,相当于要在一个嵌套列表里面找到最近接的列表值。


完整代码:

img2pixel.py 模块

作用:生成马赛克图片


generate_lego_img.py 模块

生成乐高图片,以及零件清单


  1. 导入模块和读取数据

文件内容:

2.找到最接近颜色

3. 生成乐高图片和返回零件清单字典数据

4.生成Excel 零件清单

5.使用

传入要处理的图片文件名就可以了,会自动生成对应的图片文件和数据文件。

也可以做成GUI界面,变成一个exe程序或者部署到网站上,让其他人使用。

(全文完)

欢迎转载,转载请注明出处!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档