|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 jerryxjr1220 于 2017-3-24 08:36 编辑
原本想利用tensorflow的神经网络,让计算机学会画铅笔画,后来实际操作下来,其实不用神经网络也是可以实现的,只是效果没有用tensorflow的好。
先看一下几张python画出来的画,一组风景,一组人物
从左到右依次是python不断循环素描的结果。
基本上程序的逻辑就是,先把彩色的图片转换成灰度照片,然后模拟人类作画时,先勾轮廓,再逐步勾画细节的过程。
提几个要点吧,比如勾轮廓,用的方法就是比较像素点左边一小段区域内像素平均值和右边一段的差值,如果差值超过预设范围,则认为该点是轮廓点,左右边的区域大小就决定了画笔的粗细。
另外,我让计算机素描时,不是一次性成像的,而是由淡到深,依次画,这样可以使图画看起来深浅更分明,更有立体感。
下面,还可以改进的是,现在是已像素点为单位进行素描,但是人在实际素描时是做不到以像素点作画的,而往往是以直线为单位,所以下次可以考虑让计算机也用直线作画,然后还可以引入少量随机函数,增加不确定性,这样画出的素描就更接近人类的作品了。
贴一部分代码(仅是其中某一次的素描,仅供参考,具体实现方法其实有很多,大家可以自行尝试。活用python,乐趣无穷!)
这个是用线条为单位进行素描的,并且增加了随机函数,使得线条长度不确定,并且增加上下左右、左上、右下、右上、左下8个方位区块的比较,这样创作的素描画看上去更柔和,也更接近真实的人类作画的风格。样图见楼下。
|
评分
-
参与人数 3 | 荣誉 +15 |
鱼币 +15 |
贡献 +13 |
收起
理由
|
鬼人
| + 5 |
+ 5 |
+ 3 |
很有趣。 |
冬雪雪冬
| + 5 |
+ 5 |
+ 5 |
|
~风介~
| + 5 |
+ 5 |
+ 5 |
有意思! |
查看全部评分
|