只需45 秒,Python 給故宮畫一組手繪圖!

2020-12-04 騰訊網

作者 | 丁彥軍

責編 | 屠敏

13日早晨,當北京市民拉開窗簾時發現,窗外雪花紛紛揚揚在空中飄落,而且越下越大,樹上、草地、屋頂、道路上,都落滿雪花。京城銀裝素裹,這是今冬以來北京迎來的第二場降雪。

一下雪,北京就變成了北平,故宮就變成了紫禁城。八萬張門票在雪花飄下來之前,便早已預訂一空。

看著朋友圈、微博好友都在紛紛曬圖,作為程式設計師的我只能坐在辦公室裡羨慕不已。

不過普通人得去故宮賞雪,程式設計師可以直接坐在家裡動動手指便可以欣賞到故宮的美麗雪景手繪圖了。如何操作呢?可通過Python將故宮的建築物圖片,轉化為手繪圖(素描效果)。效果圖如下:

概念與原理

我們都知道手繪圖效果的特徵主要有:

黑白灰色

邊界線條較重

相同或相近色彩趨於白色

略有光源效果

核心原理:利用像素之間的梯度值和虛擬深度值對圖像進行重構,根據灰度變化來模擬人類視覺的模擬程度。

把圖像看成二維離散函數,灰度梯度其實就是這個二維離散函數的求導,用差分代替微分,求取圖像的灰度梯度。常用的一些灰度梯度模板有:Roberts 梯度、Sobel 梯度、Prewitt 梯度、Laplacian 梯度。

以Sobel 梯度計算來解釋:

首先計算出、,然後計算梯度角

梯度方向及圖像灰度增大的方向,其中梯度方向的梯度夾角大於平坦區域的梯度夾角。如下圖所示,灰度值增加的方向梯度夾角大,此時梯度夾角大的方向為梯度方向。對應在圖像中尋找某一點的梯度方向即通過計算該點與其8鄰域點的梯度角,梯度角最大即為梯度方向。

圖像的數組形式與變換

其中,需要用到的方法:

Image.open( ): 打開圖片

np.array( ) : 將圖像轉化為數組

convert("L"): 將圖片轉換成二維灰度圖片

Image.fromarray( ): 將數組還原成圖像uint8格式

代碼如下:

圖像的手繪效果處理

實現思路步驟:

1、梯度的重構

numpy的梯度函數np.gradient(a) : 計算數組a中元素的梯度,f為多維時,返回每個維度的梯度。

離散梯度: xy坐標軸連續三個x軸坐標對應的y軸值:a, b, c 其中b的梯度是(c-a)/2

而c的梯度是: (c-b)/1。

當為二維數組時,np.gradient(a) 得出兩個數組,第一個數組對應最外層維度的梯度,第二個數組對應第二層維度的梯度。

代碼如下:

2、構造guan光源效果

設計一個位於圖像斜上方的虛擬光源,光源相對於圖像的視角為Elevation,方位角為Azimuth,建立光源對各點梯度值的影響函數,運算出各點的新像素值:

其中:

np.cos(evc.el) : 單位光線在地平面上的投射長度。

dx、dy、dz :光源對xyz三方向的影響程度。

3、梯度歸一化

構造x和y軸梯度的三維歸一化單位坐標系;

梯度與光源相互作用,將梯度轉化為灰度。

4、圖像生成

具體詳情代碼如下:

最終效果圖對比:

最後,你自己動手試試吧?通過此代碼為自己畫一張手繪圖,也可以為自己的家鄉或母校畫。

作者:丁彥軍,一名痴戀於Python的碼農

參考資料:

代碼連結:https://pan.baidu.com/s/1E_aZTRQWOzGV-2GV_iH43w

提取碼:64z9

聲明:本文為作者投稿,版權歸其個人所有。

熱 文推 薦

相關焦點

  • 簡單幾筆患者「秒懂」傷情 骨科醫生手繪千餘幅手術圖
    宿曉雷拿出一個藍色的手繪本,打開之後,裡面是一幅幅如同印刷出版物的骨科手術圖。「畫得還要多,但不少手稿都沒有留存,這只是其中一部分。」宿曉雷說,他幾乎每天都在畫圖,平時坐診時給病人講解病情,他都會隨手在掛號條背面畫圖,一邊畫一邊講。宿曉雷最早手繪手術圖,要從2014年說起。
  • 故宮守夜人:戰勤班能手繪消防作戰圖
    新京報記者 王貴彬 攝北京天安門消防救援支隊故宮特勤中隊政治指導員蔡瑞講述防火秘訣,要做到禁止一切火源進故宮故宮是世界現存最大的宮殿建築群,殿宇宮室9000多間,收藏價值連城的歷史藝術珍寶達180多萬件。
  • 手繪解剖圖走紅三十分鐘手的神經分布圖躍然紙上
    網絡配圖「這哪是手繪的啊,明明就是印刷出來的!」醫學生手繪解剖圖走紅引關注!不到三十分鐘的時間,一幅手的神經分布圖便畫好了。「我們學校學醫的都能畫這些圖。」「我們從2004年就開始讓學生手繪人體解剖圖了。」
  • 教程|手繪航拍圖=無人機+手繪?
    參數:f/2.8 ,速度1/210秒, ISO100 (器材:精靈3PRO 作者:繆華)示例2:室外陽光比較刺眼,很容易產生過曝,可以適當調整ISO到合適的參數,不讓照片泛白。無人機高度20米左右。(器材:精靈3S 作者:賈曉莉)叄後 期 修 片後期可以採用電腦或者手機修片,都很方便。
  • 80後醫生手繪手術解剖圖患者秒懂手術過程
    這不僅是因為他醫術精良,還因為他有一門「獨門絕活」——他可以把人體局部解剖圖、手術操作步驟都用手繪圖一點點畫出來,用來輔助術前談話,使得患者和家屬在術前,就可以通過讀圖,秒懂整個手術過程,打消術前的恐懼和不解,更易配合手術的進行。
  • 看到大神手繪的裸眼3D圖,美術生懷疑人生:我畫的都是假畫!
    看到大神手繪的裸眼3D圖,美術生懷疑人生:我畫的都是假畫!提到美術生,相信很多網友都相當熟悉,在大家的印象中,美術生都是一種神奇的存在,他們能通過自己的畫筆,在畫紙上還原出現實中的場景,讓人懷疑自己的眼睛。
  • 女大學生手繪人體解剖圖太逼真網友:印出來的
    手繪解剖圖「這哪是手繪的啊,明明就是印刷出來的!」近日,有一組學生手繪人體解剖圖在網上流傳,不少網友紛紛留言稱讚其繪畫的相當逼真。1月15日下午,記者幾經打聽終於找到了這組手繪人體解剖圖的主人——漯河某大學醫療系臨床專業的趙琳琳。
  • 美女學霸手繪人體解剖圖太逼真:堪比印刷
    「這哪是手繪的啊?明明就是印刷出來的!」近日,一組學生手繪人體解剖圖在網上流傳,大量網友表示「不相信」,簡直是印刷出來的。現在,這組神圖的作者終於被找到,果然是個女學霸:河南漯河某大學醫療系臨床專業的趙琳琳。
  • 高中生手繪動植物細胞 對比原圖簡直以假亂真(圖)
    沒錯,正是今年杭州市中考最高分的獲得者吳思齊同學  昨天早上,記者被朋友圈裡的一組手繪稿驚豔住了,準確地說,是「動植物細胞亞顯微結果模式圖」。這可不是生物課本上的插畫,而是高中生的手繪稿。記者採訪發現,這都是杭州學軍中學學生的作品。  對比課本上的原圖,簡直「以假亂真」,甚至比真的更令人驚豔。  為啥那麼多高中生都迷上了畫細胞?
  • 長沙醫生6年手繪千幅手術圖
    7月31日上午,長沙市第三醫院36歲的骨科醫生周偉力正在給一位即將手術的患者進行術前溝通,他一邊畫一邊講解手術方案,患者和家屬在一旁靜靜聆聽。  「我是一名骨科醫生,幾乎每天都要做手術,這樣的溝通幾乎每天都會有。」周偉力告訴記者,用繪圖的方式和患者、家屬溝通,他已經堅持了6年多。他手繪了上千幅手術方案圖,讓沒有任何醫學常識的患者也能「秒懂」手術。
  • 「故宮鎮館之寶慈禧彩照」被證偽 南京小夥:我畫的
    有營銷號稱這張照片是「故宮的鎮館之寶」,還為此杜撰了一個曲折離奇的故事。對此,故宮博物院官網近日刊發了專門的考證文章,明確表示「這張慈禧太后彩色照片可以認定為偽造照片」。揚子晚報/紫牛新聞記者了解到,這張「照片」其實是畫出來的,作者是南京小夥居旭東,一位29歲的插畫師。
  • 【手繪】室內空間手繪上色圖分享!
    室內空間手繪上色圖希望能幫助到學習手繪途中的你們轉發、點讚就是最好的支持馬克筆上色手繪,每位作者對手繪的理解不一樣,然而表現手繪手法也會有所不同,但最終是為了輔助設計而用,所以學好手繪貴在堅持,長期積累下去,都會有很好的進步空間的;那麼方法其實很重要,在學習手繪的初始階段,首先要練好紮實的手繪基礎,那就是線條的表達和空間透視的運用;其次,就是對色彩的應用理解,一幅完整的作品,可以說是七分線稿,三分上色,線稿畫的比較完整,那麼上色平塗都是有很不錯的效果的;今天就帶大家欣賞幾組偏灰調的室內設計手繪上色圖。
  • 高二學生手繪地圖惟妙惟肖,地理老師坦言:這樣的地圖自己也畫不出
    高二學生手繪地圖惟妙惟肖,地理老師坦言:這樣的地圖自己也畫不出 2020-05-07 10:13:31 來源: 南通網
  • python學習筆記:同時畫多圖,折線圖,箱線圖,條形圖,柱狀圖等
    1.同時畫六張圖#從Matplotlib中導入了pyplot繪圖模塊from matplotlib.pyplot import *#設置相關的數值x=[1,2,3,4]y=[5,4,3,2]#創建一個圖紙(figure)figure()#使用subplot創建多個子圖,下面的subplot(2,3,1)表示創建一個包含2行3列圖表的圖紙,1表示第一張圖subplot
  • 這些手繪立體畫太逼真了,只有從視頻中才能看出「破綻」
    為了證明它們真的是畫出來的,最好的辦法,就是拍視頻,通過旋轉畫紙的角度,主動讓大家看出「破綻」。當畫面旋轉,我們會發現,原來這些畫非但沒有真實感,反而呈現一種拉伸變形的狀態,因為這才是它的真實樣子。很多所謂立體作品的立體感並沒有像上圖這麼強烈,其中一個原因在於,前期的準備工作不夠「完美」。
  • 可愛手繪樹洞畫現身!找個時間再來紫金山!
    最近一組以動物為主題的手繪樹洞畫出現在南京靈谷寺景區,引來一眾好奇的遊人拍照打卡~ 先來跟小攻看看這些手繪畫究竟有多可愛吧! 圖源:@小米和薄荷 原來這些可愛的手繪畫是鐘山風景區為了美化環境
  • 高中生手繪動植物細胞,簡直以假亂真
    有位同學還在作品右下角畫了一幅細胞膜結構圖一名同學的參賽作品為「生物各細胞結構示意圖」昨天早上,記者被朋友圈裡的一組手繪稿驚豔住了,準確地說,是「動植物細胞亞顯微結果模式圖」。這可不是生物課本上的插畫,而是高中生的手繪稿。這都是杭州學軍中學學生的作品。對比課本上的原圖,簡直「以假亂真」,甚至比真的更令人驚豔。
  • 高中生手繪動植物細胞 對比原圖簡直以假亂真
    沒錯,正是今年杭州市中考最高分的獲得者吳思齊同學昨天早上,記者被朋友圈裡的一組手繪稿驚豔住了,準確地說,是「動植物細胞亞顯微結果模式圖」。這可不是生物課本上的插畫,而是高中生的手繪稿。記者採訪發現,這都是杭州學軍中學學生的作品。
  • 11歲自閉症男孩手繪世界地圖 憑記憶精確畫出(圖)
    11歲自閉症男孩手繪世界地圖 憑記憶精確畫出(圖) 2015-04-10 15:10:32  自閉症男孩手繪世界地圖  據報導,這位11歲「天才男孩」是位自閉症患者,日前他跟著身為大學教授的母親走進大學課堂,在眾目睽睽之下,手拿一支記號筆,在偌大的一塊白板上畫出了完整的世界地圖。令人嘆為觀止的是,他靠著記憶一氣呵成,連國與國之間的界線和彎曲的海岸線,也畫得細緻入微。  現場的大學生無不驚得目瞪口呆。
  • 1-12月可愛女孩插畫壁紙,夏天推薦一組小清新手繪圖,帶走燥熱感
    很長時間沒有給大家分享插畫作品啦,夏天天氣比較燥熱,給大家推薦一些很小清新的手繪圖,都是一些可愛的萌妹子們,拿去當做壁紙用也是很好的,喜歡的就保存圖片噢!首先給大家推的第一組圖,其實是用板繪畫的,畫的是一組非常小清新的小女孩插畫,有1-12月份的插畫系列,很好看的樣子。