本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個人專欄
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個人專欄
下載W3Cschool手機App,0基礎(chǔ)隨時隨地學編程>>戳此了解
導語
本來想用神經(jīng)網(wǎng)絡(luò)讓計算機學會畫鉛筆畫和素描的,后來發(fā)現(xiàn)其實不用神經(jīng)網(wǎng)絡(luò)效果也還可以,那么系列上就從簡單的入手!
先放圖哈!

沙畫:




鉛筆畫:






文件下載
百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1Y4ocZhhJuuRdWAJjWTh3MQ
密碼: 26xi
原理簡介
素描:
sketch1.py:
其主要思想是彩色圖片先轉(zhuǎn)換成灰度圖片,然后模擬人作畫時先畫輪廓再逐步勾畫細節(jié)的過程。
勾輪廓時比較像素點左邊一小段區(qū)域內(nèi)像素平均值和右邊一小段區(qū)域內(nèi)像素平均值的差值,如果差值超過預設(shè)范圍,則認為該點是輪廓點。另外,素描時不是一次性成像的,而是由淡到深,依次畫,這樣可以使圖畫看起來深淺更分明,更有立體感。
sketch2.py:
原理類似,但是以線條為單位進行素描,并且增加了隨機函數(shù),使得線條長度不確定,并且增加到上下、左右、左上、右下、右上、左下8個方位區(qū)塊的比較,這樣創(chuàng)作的素描畫看上去更柔和,也更接近真實的人類作畫的風格。
沙畫:
sand_paint.py:
其實原理和畫鉛筆畫是差不多的,區(qū)別是用隨機函數(shù)模擬了空白背景上的沙粒,沙粒的顏色深淺,可以通過S_COLOR_LIGHT和S_COLOR_DARK來設(shè)置。

OK,代碼原理介紹完畢,其實很簡單或者說很low。但效果確實還不錯。


運行方式
python設(shè)置了環(huán)境變量之后,在cmd中運行即可。輸入python文件名+想要素描或者化成沙畫的原圖像路徑(含圖像名)即可。例如下圖:

圖片將保存在當前路徑下。
下期預告
讓python模仿世界名畫!也就是之前很火的一個人工智能話題。
比如梵高筆下的天安門和上海:

