Android-图片实现类似素描的效果

核心思路
  1. 使用openCV获取灰度图像:0(黑)~255(白)

  2. 将该图像按照灰度值分层,每一层是一个0,1二维数组:1表示绘制,0表示不绘制,之后绘制每一层

  3. 先绘制颜色最深的那一层。

    在二维数组中找一个随机点,从该点出发依次向上下左右四个方向探测,如果找到需要绘制的点,那么再去找该点所在的区域中所有的跟该点绘制次数相同的点,之后按照随机的mask去绘制找到的点(注意点的颜色由该位置的已经绘制的次数决定)。遍历完该点的4个方向之后,再遍历该点左下位置的点,直到超出边界,之后再去遍历该点右上位置的点,直到超出边界,这样就遍历完了一层。

    之后再遍历下一层,直到遍历完所有层。

  4. 上面提到的mask是预先生成的蒙板。具体可以去看源代码,非常简单。

效果gif:

sumiao

最终效果图

sketch

代码地址

https://github.com/kbjay/KJ_Sketch