python skimage骰子作画
欢迎转载,请支持原创,保留原文链接:blog.ilibrary.me
前面根据阮一峰的一篇博客骰子作画,写了一个把图片通过骰子作画的工具。 算法是抄的,用python实现,然后加了一些功能。
它的核心思想就是把一张图片划成16乘16的小区域,每个区域取它的灰度值,然后根据灰度值划成六段,编号为一至六,然后将一至六映射到骰子的一到六个点。
于是,一张彩色的图片就可以通过这种方式变成骰子拼成的黑白图片。
这个算法最早来自于一个国外的博主Scott MacDonald,他最早公布了他的算法,在这个地方。
我用python加SK1米即实现了这个算法,算法已经公开在github上面,大家都可以去看, 在这里。 目前大概3k颗左右的骰子就可以做出一副效果不错的骰子图。
下面是用到的骰子.
下面是原图和骰子作画效果.
后续呢,打算用机器学习做一些优化,主要是针对有方向性的骰子,比如说二号三号六号,根据图像特征做旋转。
这种优化只能是局部优化,对整体影响不大,但细节上应该会提升一些。
一个需要注意的地方是,rgb取灰度值的时候Red, Green, Blue权重不是一样的,是根据人的直观感受做了调整的。
def rgb2gray( argb):
return int(0.3*argb[0] + 0.59*argb[1] + 0.11*argb[2])