核心思路
使用openCV获取灰度图像:0(黑)~255(白)
将该图像按照灰度值分层,每一层是一个0,1二维数组:1表示绘制,0表示不绘制,之后绘制每一层
先绘制颜色最深的那一层。
在二维数组中找一个随机点,从该点出发依次向上下左右四个方向探测,如果找到需要绘制的点,那么再去找该点所在的区域中所有的跟该点绘制次数相同的点,之后按照随机的mask去绘制找到的点(注意点的颜色由该位置的已经绘制的次数决定)。遍历完该点的4个方向之后,再遍历该点左下位置的点,直到超出边界,之后再去遍历该点右上位置的点,直到超出边界,这样就遍历完了一层。
之后再遍历下一层,直到遍历完所有层。
上面提到的mask是预先生成的蒙板。具体可以去看源代码,非常简单。