在之前一篇文章,
留了个坑,今天来填完它。
之前的速度不是很快,这次使用了numpy 来计算,速度已经比较快了,传入图片,到生成马赛克图,乐高积木图以及生成零件清单不会超过 10 s 钟。
先看看效果:
图片效果
再放大一点
马赛克图片就省略了,之前已经看过了。下面再看看生成的零件清单。
零件清单
实现过程
最难的其实就是颜色对比,实际图片像素颜色种类是非常多的,理论上可以有256*256*256种,而乐高图片只有50多种,如何让每种像素值都匹配到对应的图片呢。
方法就是找到最接近值,比如在一个列表里如何找到最接近值呢?
将目标数与其列表中的每一个数相减,并对差值取绝对值,最后在绝对值中找最小数。
单个数的原理明白了,颜色值 RGB 就容易理解了,RGB值是一个列表,相当于要在一个嵌套列表里面找到最近接的列表值。
完整代码:
img2pixel.py 模块
作用:生成马赛克图片
generate_lego_img.py 模块
生成乐高图片,以及零件清单
文件内容:
2.找到最接近颜色
3. 生成乐高图片和返回零件清单字典数据
4.生成Excel 零件清单
5.使用
传入要处理的图片文件名就可以了,会自动生成对应的图片文件和数据文件。
也可以做成GUI界面,变成一个exe程序或者部署到网站上,让其他人使用。
(全文完)
欢迎转载,转载请注明出处!