在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過Python將故宮的建筑物圖片,轉化為手繪圖

電子工程師 ? 來源:lq ? 2019-02-19 09:26 ? 次閱讀

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

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

(圖片來源:故宮官網版權歸故宮官網所有)

看著朋友圈、微博好友都在紛紛曬圖,小編只能羨慕不已。

不過,突然想到,可以通過Python將故宮的建筑物圖片,轉化為手繪圖(素描效果)。效果圖如下:

一、概念與原理

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

黑白灰色;邊界線條較重;相同或相近色彩趨于白色;略有光源效果

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

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

以Sobel 梯度計算來解釋:

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

二、圖像的數組形式與變換

其中,需要用到的方法:

Image.open( ):打開圖片

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

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

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

代碼如下:

fromPILimportImageimportnumpyasnpim=Image.open(r"C:UsersAdministratorDesktopgugong微信圖片_20190216152248.jpg").convert('L')a=np.asarray(im).astype('float')print(a.shape,a.dtype)(1080,608)float64#(1080,608)分別表示高度,寬度

三、圖像的手繪效果處理

實現思路步驟:

1、梯度的重構

numpy的梯度函數的介紹

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

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

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

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

代碼如下:

grad=np.gradient(a)grad_x,grad_y=gradgrad_x=grad_x*depth/100.#對grad_x值進行歸一化grad_y=grad_y*depth/100.#對grad_y值進行歸一化

2、構造guan光源效果

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

其中:

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

dx,dy,dz :光源對x,y,z三方向的影響程度

3、梯度歸一化

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

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

4、圖像生成

具體詳情代碼如下:

fromPILimportImageimportnumpyasnpimportosimportjoinimporttimedefimage(sta,end,depths=10):a=np.asarray(Image.open(sta).convert('L')).astype('float')depth=depths#深度的取值范圍(0-100),標準取10grad=np.gradient(a)#取圖像灰度的梯度值grad_x,grad_y=grad#分別取橫縱圖像梯度值grad_x=grad_x*depth/100.#對grad_x值進行歸一化grad_y=grad_y*depth/100.#對grad_y值進行歸一化A=np.sqrt(grad_x**2+grad_y**2+1.)uni_x=grad_x/Auni_y=grad_y/Auni_z=1./Avec_el=np.pi/2.2#光源的俯視角度,弧度值vec_az=np.pi/4.#光源的方位角度,弧度值dx=np.cos(vec_el)*np.cos(vec_az)#光源對x軸的影響dy=np.cos(vec_el)*np.sin(vec_az)#光源對y軸的影響dz=np.sin(vec_el)#光源對z軸的影響b=255*(dx*uni_x+dy*uni_y+dz*uni_z)#光源歸一化b=b.clip(0,255)im=Image.fromarray(b.astype('uint8'))#重構圖像im.save(end)defmain():xs=10start_time=time.clock()startss=os.listdir(r"C:UsersAdministratorDesktopgugong")time.sleep(2)forstartsinstartss:start=''.join(starts)sta='C:/Users/Administrator/Desktop/gugong/'+startend='C:/Users/Administrator/Desktop/gugong/'+'HD_'+startimage(sta=sta,end=end,depths=xs)end_time=time.clock()print('程序運行了----'+str(end_time-start_time)+'秒')time.sleep(3)main()程序運行了----43.01828205879955秒#一共35張圖片

最終效果圖對比:

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

參考資料

http://www.icourse163.org/learn/BIT-1001870002?tid=1001963001#/learn/announce

代碼鏈接:

https://pan.baidu.com/s/1E_aZTRQWOzGV-2GV_iH43w

提取碼:64z9

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像
    +關注

    關注

    2

    文章

    1089

    瀏覽量

    40599
  • 梯度
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10363
  • python
    +關注

    關注

    56

    文章

    4811

    瀏覽量

    85092

原文標題:只需45秒,Python給故宮畫一組手繪圖!

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    雷直擊建筑物時電流分布的電磁場數值分析pdf

    雷直擊建筑物時電流分布的電磁場數值分析 摘要:本文利用一個簡單的等效電路和一個電磁場模式研究了雷直擊建筑物時的雷電流分布。利用計算電磁學代碼(NEC-4)進行電磁場數值分析。通過
    發表于 10-13 08:56

    建筑物接地電阻的要求

    建筑物接地電阻的要求    依據GB50057-94(2000版)《建筑物防雷設計規范》第三章、建筑物的防雷措施;第二節、第一類防雷建筑物的防雷
    發表于 01-14 16:13

    建筑物火災并非只是電線電纜之過

    有機建筑材料和物品有化為灰燼,甚至鋼梁都能燒熔,任何阻燃電線電纜都無濟于事。因此,查找火災原因時,除了弄清楚前述短路情況之外,也不要在電線電纜的阻燃性能上打主意,況且有很多建筑物使用的不是阻燃電線電纜
    發表于 03-25 22:12

    如何用labview程序二維圖片轉化為比特序列?

    如何用labview程序二維圖片轉化為比特序列?
    發表于 05-16 11:13

    利用PythonPDF轉化為圖片的方法

    python的功能真是強大,可以做詞云圖、可以優雅地八卦、可以做游戲外掛、還可以PDF轉化圖片,這個功能你還不知道吧,趕緊隨小編我一起來看看吧:之前收集了很多優秀的 PDF文檔,但
    發表于 07-11 17:37

    ?iMX6UL工業級核心板在建筑物能耗管理系統中的應用方案

    。因此,節能建筑成了建筑行業的首要議題。最近十年來,伴隨著電子技術的革命性進步和軟件技術的不斷完善,產生了通過各種不同的電子裝置,結合軟件技術,實現了對建筑物的能耗進行實時監控和管理。
    發表于 04-22 16:27

    大型水利水電工程建筑物三維可視化建模技術研究

    的三維空間位置可以通過Q(x,y,z)表示,而兩個點對象的三維空間位置即可以描述建筑物的線段對象,而多個線段對象共同組成線對象,線對象又可以描述幾何要素,由此可見數據模型可以實現對規則或不規則
    發表于 10-22 08:09

    一種基于機器學習的建筑物分割掩模自動正則化和多邊形化方法

    化處理,使其更加逼真,即有更多的直線型輪廓,在需要時構造直角。這是通過給定輸入圖像為真的概率的鑒別器和從鑒別器響應中學習創造更真實圖像的生成器之間的相互作用來實現的。最后,從正則化的建筑物分割結果中訓練
    發表于 09-01 07:19

    建筑物防雷保護設計淺析

    摘要:本文就設計中建筑物防雷保護在防直擊雷、雷電波侵入以及相應的解決措施做了一些分析。 關鍵詞:建筑物 防雷保護 隨著現代社會的發展,建筑物的規模不斷擴大,
    發表于 11-18 11:02 ?22次下載

    建筑物的泛光照明設計

     通常所說的泛光照明是指建筑物的立面照明。建筑物泛光照明的效果,不僅取決于泛光燈具和建筑物表面材質,還取決于設計人員的構思、經驗、藝術底蘊和欣賞能力。照明設計
    發表于 01-19 14:40 ?14次下載

    聯網轉化了人物對建筑物的認知,并縮減運營開銷且更加環保

    就最基本的層面上而言,我們希望建筑物(無論是簡陋居所或是現代的鋼筋玻璃結構)可以為住戶提供一個舒適的空間。聯網(IoT)轉化了人物對建筑物的認知,讓人意識到那不只是住戶的居住“容器”
    發表于 05-24 08:24 ?1323次閱讀

    建筑物聯網市場由于什么增長的

    從項目類型來看,建筑物聯網市場由硬件、軟件以及三大部分組成,在預測期內,軟件部分預計主導這個建筑物聯網市場。
    發表于 02-23 20:43 ?999次閱讀

    建筑物防雷工程的設計與施工

    本文會介紹建筑物防雷工程的設計與施工的基本原理、方法和要求,以及一些典型的案例分析。建筑物防雷工程是為了保護建筑物及其內部設備、人員和財產免受雷電危害而采取的一系列技術措施。建筑物防雷
    的頭像 發表于 07-07 10:58 ?779次閱讀
    <b class='flag-5'>建筑物</b>防雷工程的設計與施工

    建筑物防雷等級分為幾類

    建筑物的防雷等級是指建筑物所需的防雷保護措施的等級劃分。根據國家標準GB 50057-2010《建筑物防雷設計規范》1,建筑物應根據建筑物
    的頭像 發表于 11-06 09:58 ?3459次閱讀
    <b class='flag-5'>建筑物</b>防雷等級分為幾類

    建筑物防雷檢測安全接地應用解決方案

    雷電是一種自然現象,具有極高的電壓和電流,對建筑物及其內部設備、人員和財產可能造成嚴重的危害,如火災、爆炸、電擊、電磁干擾等。因此,建筑物必須采取有效的防雷措施,以保障建筑物的安全和可靠運行。
    的頭像 發表于 01-24 15:07 ?511次閱讀
    <b class='flag-5'>建筑物</b>防雷檢測安全接地應用解決方案
    主站蜘蛛池模板: 永久精品免费影院在线观看网站 | 久久精品看片 | 国产黄色视屏 | 久久伊人成人 | 亚洲电影av | 久久国产乱子伦精品免 | 99草视频| 一区二区三区网站在线免费线观看 | 97久久草草超级碰碰碰 | 亚洲热热久久九九精品 | 在线欧美国产 | 亚洲一区免费视频 | bt天堂网www连接 | 亚洲第一精品夜夜躁人人爽 | 亚洲性爱城 | 亚洲成人网页 | 台湾香港澳门三级在线 | 婷婷色在线播放 | 久久久久久久久久免观看 | 午夜情趣视频 | 日本人的色道免费网站 | 一级三级黄色片 | 亚洲一区在线播放 | 黄色在线| 色老头久久久久 | 人人草人人爱 | 日本写真高清视频免费网站网 | 久草婷婷 | 美女18毛片 | 久久婷婷色综合老司机 | 超级乱淫伦网站 | 在线播放黄色 | 国产成人影院 | 成人免费国产gav视频在线 | 久久久xxx | 亚洲aa | 亚洲不卡网 | 鲁丝一区二区三区 | 好紧好爽太大了h快穿 | 寄宿日记在线看 | 午夜色图|