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