起因
记得大一的时候,人人网还比较流行,当时有人在人人上写了一个应用。用人人账号里的图片合成像素化的某张图。当时觉得好有趣,而且,如果这个东西能够做出一张很大的图片,送给loved one做礼物,也是很有意思的。
所以周末的时候,用了opencv c++撸了一个工具出来,可以直接生成像素化的图像。
效果
原图
灰度模式
RGB模式(因为待选图片中好多黄瓜青菜,所以狗狗偏绿了)
算法
算法采用了非常简单的方法。就是取待转化图片中某一小块做平均值,然后在被填充图片中寻找平均值与该值最接近的图片,新建一个矩阵把这个图片填充进来。“接近”这个算法,取的是曼哈顿距离。
运行
测试和开发环境:
- ubuntu 16.04
- opencv 3.10
具体运行方法请点击下面的项目地址查看。
项目地址
https://github.com/lawlietxxl/phixel
祝大家七夕快乐!满地打滚求star 啊啊啊~~~