怎么安装python3.72_这才是 Python 的 “72 变”玩法!
作者 | 阿廣
責(zé)編 | 胡巍巍
基于Python的鉛筆素描圖
說到鉛筆素描,很多畫家用它用得極為精湛。
有的細(xì)致到跟照片無法區(qū)別,簡直是墨筆丹青,如行云流水繞素箋,展瀚海崇山依舊顏,怎一個好字了得;但是有的人畫素描怎么花都畫不好。
那么同一根鉛筆,為啥差距這么大呢?今天筆者給大家介紹一種使用PIL庫對原畫自動生成素描畫。
思考
鉛筆素描的細(xì)節(jié)實體如何和Python灰度化、模糊度進(jìn)行轉(zhuǎn)換?模糊度和參數(shù)如何調(diào)節(jié)?彩色圖像和鉛筆素描對比
筆者丑照圖
筆者丑照鉛筆素描圖
山東科技大學(xué)校訓(xùn)彩色圖
山東科技大學(xué)校訓(xùn)鉛筆素描圖
濟(jì)南校區(qū)一角風(fēng)景原圖
濟(jì)南校區(qū)一角風(fēng)景鉛筆素描圖
山科一角美景圖
山科一角鉛筆素描圖
爬蟲技術(shù)分析
PIL庫:
PIL(Python Image Library)是Python的第三方圖像處理庫,但是由于其強(qiáng)大的功能與眾多的使用人數(shù),幾乎已經(jīng)被認(rèn)為是Python官方圖像處理庫了。其官方主頁為:PIL。
PIL歷史悠久,原來是只支持Python2.x的版本的,后來出現(xiàn)了移植到Python3的庫Pillow,Pillow號稱是friendly fork for PIL,其功能和PIL差不多,但是支持Python3。
代碼解析
導(dǎo)入PIL庫
from PIL import Image, ImageFilter, ImageOps
加載圖片
#先到相應(yīng)的路徑下加載到這張圖片img = Image.open('zandaoguang.jpg') #jpg和png格式均可
處理圖片并展示圖片
defFormula(a, b, alpha):return min(int(a*255/(256-b*alpha)), 255)#通過雙層for循環(huán)將圖片轉(zhuǎn)換defzandaoguang(img, blur=25, alpha=1.0):img1 = img.convert('L') #圖片轉(zhuǎn)換成灰色 img2 = img1.copy() img2 = ImageOps.invert(img2)for i in range(blur): #模糊度 img2 = img2.filter(ImageFilter.BLUR) width, height = img1.sizefor x in range(width):for y in range(height): a = img1.getpixel((x, y)) b = img2.getpixel((x, y)) img1.putpixel((x, y), Formula(a, b, alpha)) img1.show() #展示圖片效果zandaoguang(img)
由于篇幅原因,這就只展示部分代碼,詳情請查看源碼請自行去GitHub下載:
https://github.com/zandaoguang/pic_proc后記
畢加索曾經(jīng)說過:“我在十幾歲時畫畫就像個古代大師,但我花了一輩子學(xué)習(xí)怎樣像孩子那樣畫畫。”
最后筆者想對大家說:畫畫,我是認(rèn)真的;搞笑,絕對不是故意的。
如何利用Python打飛機(jī)?
學(xué)過爬蟲的朋友都知道,它是一門“以簡制勝”的語言,在筆者兩天的努力下,使用200行代碼完成了“打飛機(jī)”小游戲。
我相信雷霆戰(zhàn)機(jī)很多人都玩過吧,它是Pygame庫開發(fā)出來的。同時,它還可以開發(fā)掃雷、坦克大戰(zhàn)等很多有趣的游戲!
游戲界面
游戲說明
這是一個簡易的Python游戲代碼,很多細(xì)節(jié)都沒有去做;大家克隆下來可以直接運行showEnemy.py即可;↑↓←→和ASDF控制方向,空格鍵發(fā)射子彈;Random函數(shù)主要實現(xiàn)敵方飛機(jī)產(chǎn)生和子彈的發(fā)射頻率;time.sleep()為了讓CPU休息;后期我們完善的時候可以加上擊中等場景的特效。部分代碼
初始化飛機(jī)參數(shù)
def__init__(self,screen):#設(shè)置飛機(jī)默認(rèn)的xy值self.x=180self.y=600self.screen=screenself.imageName='./feiji/hero.gif'self.image=pygame.image.load(self.imageName).convert()self.bulletList=[]self.needRemoveList=[]
顯示飛機(jī)
defdisplay(self):self.screen.blit(self.image,(self.x,self.y))for bullet inself.bulletList:bullet.display() bullet.move()for bullet inself.bulletList:if bullet.judgeOut():self.needRemoveList.append(bullet)for bullet inself.bulletList:if bullet inself.needRemoveList:self.bulletList.remove(bullet)
飛機(jī)移動
defmove(self,opt):if opt=='left':self.x-=15elif opt=='right':self.x+=15 elif opt=='up':self.y-=15 elif opt=='down':self.y+=15
飛機(jī)射擊
defshoot(self):newBullet=Bullet(self.screen,self.x,self.y) newBulletLeft=BulletSmall(self.screen,self.x,self.y) newBulletRight=BulletSmall(self.screen,self.x+64,self.y+20)self.bulletList.append(newBulletLeft)self.bulletList.append(newBulletRight)self.bulletList.append(newBullet)
Python版雷霆戰(zhàn)機(jī)完整代碼鏈接:
https://github.com/zandaoguang/play-plane之前玩雷霆戰(zhàn)機(jī)的時候,看起來打飛機(jī)游戲蠻復(fù)雜,結(jié)果經(jīng)過自己的實現(xiàn)之后,發(fā)現(xiàn)僅僅200行就能完成一個打飛機(jī)的小項目。
敲黑板,我們在做任何一件事情得時候,一定不要眼高手低,也不要大題小作。
只要是認(rèn)真做就可以超越昨天的自己。像這款游戲一樣,我們的人生只有一關(guān)一關(guān)的擊敗敵機(jī)(困難),只有在擊敗了敵機(jī)的情況下(完成了艱難任務(wù)),我們才能獲得新的裝備(知識),不斷攀升,最終經(jīng)過不斷提升自己,走向成功!下面是啊廣總結(jié),與大家共勉!
眼高手低志不廣,
欺軟怕硬人囂張;
欲上天宮攬明月,
以為自己會飛翔!
作者簡介:阿廣。本文首發(fā)個人公眾號視學(xué)算法,專注于大數(shù)據(jù)、人工智能和算法的學(xué)習(xí)平臺,也是一名保送中科院軟件研究所直博的技術(shù)提升之路。人生苦短,我愿做您最忠實的技術(shù)支持伙伴!一起用代碼改變世界!聲明:本文為作者投稿,版權(quán)歸其個人所有。
總結(jié)
以上是生活随笔為你收集整理的怎么安装python3.72_这才是 Python 的 “72 变”玩法!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 预装 gps test
- 下一篇: Python实战24天从入门到精通-大纲