日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pil python 安装_20行Python代码给微信头像戴帽子

發布時間:2025/3/8 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pil python 安装_20行Python代码给微信头像戴帽子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者 | Leauky,北理工碩士在讀,非CS專業的Python愛好者。

朋友圈里@微信官方要求戴圣誕帽的活動曾經火爆一時,有些會玩的小伙伴都悄咪咪地用美圖秀秀一類的 app 給自己頭像 p 一頂,然后可高興地表示“哎呀好神奇hhhh”,呆萌的小伙伴當然就一直等啊等... ...作為一名堅信“用技術解決需求”的萌新,在一個無聊的周末嘗試用python來搞一波事情。

主要思路

準備兩張圖:一張頭像,一張帽子。先用人臉識別定位頭像中的人臉,給出人臉像素坐標;再根據這個坐標確定帽子放置的坐標;最后將兩張圖片拼接后輸出。(需要注意的是,帽子是不規則圖像,除了主體外背景應該是透明的,因此必須是四通道png格式)。gakki 醬親自演示如下:

示意圖

問題展開

1. 人臉識別怎么搞定?(重新造輪子?不存在的,這輩子都不可能造輪子的)。Github上一個開源的python人臉識別庫face_recognition雙手奉

https://github.com/ageitgey/face_recognition#face-recognition

據說識別率99.38%(頂瓜瓜啊!)。通過安裝這個庫就可以調用人臉檢測器。

2. 確定了帽子的放置位置,怎么拼接圖層?這個屬于基本的圖像操作,python提供了PIL(Python Image Lib)這么一個庫來進行圖像處理,具體操作請看后面的代碼。

庫的安裝

我的環境是Ubuntu 16.04+Python2.7.12。使用Window,Mac OS和Python3的同學也可以參考,都是類似的。face_recognition這個庫比較事兒,安裝前需要依次安裝boost(boost_python),cmake,dlib這幾個依賴和庫,中間出現任何問題都可以通過Google解決(懶得寫 -.. -)。安裝完所有的依賴后,使用命令:

1pip install face_recognition2pip install pillow #PIL庫

完成后就可以在你的python腳本里import face_recognition和PIL了。

代碼分析

Talk is cheap, show me the code。直接上代碼:

1from PIL import Image2import face_recognition3img_path = raw_input("image path:")4image = face_recognition.load_image_file(img_path)5face_locations = face_recognition.face_locations(image)6print("Found {} face(s) in this photograph.".format(len(face_locations)))

第1、2行導入PIL庫中的Image模塊和face_recognition庫。第3行,等待用戶輸入頭像圖片的路徑。第4行,把路徑所指的圖像數據讀入image中。第5行,調用face_locations處理image中的圖像數據,對圖片中的人臉進行識別定位,定位后的得到的像素坐標數據放在face_locations里。第6行在shell里輸出圖片里識別到的人臉的個數。

7human_img = Image.open(img_path)8human_img = human_img.convert("RGBA")9hat_img = Image.open("./hat.png")10hat_img = hat_img.convert("RGBA")

第7、8行,把路徑所指的圖像數據讀入human_img中,并轉換為四通道RGBA模式。9、10行讀入帽子圖像并做相同處理。

11for face_location in face_locations:12 top, right, bottom, left = face_location13 top -= 1014 print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right))15 head_h = bottom-top#hight of head16 head_l = right-left#length of head17 hat_img = hat_img.resize( (head_l,head_h) )#convert size of hat18 hat_region = hat_img19 human_region = ( left, top-head_h, right, top )20 human_img.paste(hat_region, human_region,mask=hat_img)21human_img.show()

如果一張圖里有多張人臉,face_recognition.face_locations(image)會返回每張人臉的位置信息,存放在一個list里。因此第11行是遍歷face_locations里的每張人臉的數據。第12行解包一個人臉像素坐標數據,得到top,right,bottom,left分別為示意圖中的y1,x2,y2,x1。第13行,為啥y1要減10個像素?因為人臉識別得到的y1最多到你額頭的位置,所以再把這個坐標往上提一提帽子才戴得更自然。第14行輸出坐標數據方便調試。第15、16行計算人臉的高度和寬度。第17行使用resize()根據人臉的大小調整帽子的大小,因為圖像中的人臉有大有小,調整后看起來更和諧。第18行,將帽子圖像作為頂部圖層圖像。第19行,確定底部圖層(頭像圖片)被覆蓋的區域(就是帽子放置區域)。第20行,把頂部圖層與底部圖層拼接(不太明白的看下圖)。然后一個循環結束,亦即完成圖片中一個人的戴帽操作,接著進行下個人的戴帽,直到所有人都戴上了帽子。最后21行,完成輸出~

更新

更多人臉:

總結

以上是生活随笔為你收集整理的pil python 安装_20行Python代码给微信头像戴帽子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜肉伦伦影院 | 精品国产乱 | 成人片免费视频 | 国产情侣久久 | 好吊在线视频 | av中亚| 都市激情亚洲综合 | 国产精品免费91 | 国产精品资源在线观看 | 57pao成人国产永久免费视频 | 日日骑夜夜操 | 91av影院| 精品aaa | 毛毛毛片 | 久久久精品人妻一区二区三区色秀 | 色哟哟视频在线观看 | 亚洲国产精品网站 | 精品国产伦一区二区三区 | 精品国产鲁一鲁一区二区张丽 | 偷拍第一页 | 国内视频一区二区三区 | 高级毛片 | 2019中文字幕在线 | 亚洲精品免费视频 | 懂色av蜜臀av粉嫩av分享吧 | 玖草视频在线 | 亚洲品质自拍视频 | 亚洲精品456 | 亚洲综合免费观看高清完整版在线 | 能在线观看的av网站 | 中文字幕第100页 | 视色av| 我要看免费的毛片 | 日韩欧美色图 | 国产精品免费视频一区二区三区 | 欧美福利社 | 色久视频| 精品久久久久久久久久久国产字幕 | 老司机精品福利视频 | 色婷婷成人网 | 夜夜狠狠擅视频 | 免费看a级片 | 免费看美女被靠到爽的视频 | 91污在线观看 | 中文字幕第七页 | 亚洲人xxx日本人18 | 日韩欧美在线看 | 国产精品久久久午夜夜伦鲁鲁 | 调教撅屁股啪调教打臀缝av | 97色综合 | 永久免费AV无码网站韩国毛片 | 成人交性视频免费看 | 黑人vs亚洲人在线播放 | 欧美国产免费 | 亚洲乱亚洲乱妇 | 国内三级视频 | 国产精品视频999 | 网站黄色在线观看 | 91亚洲视频| av看片| 国产少女免费观看高清 | 亚洲区一区 | 三级网站在线看 | 男人午夜免费视频 | 爱久久视频| 人妻在卧室被老板疯狂进入 | 欧美区视频 | jizz另类| 色香蕉在线视频 | 99re国产精品 | 欧美日韩在线视频一区 | 久久久精品国产 | 超碰日韩| 美女被男人桶出白浆喷水 | 精品综合久久 | 天海翼视频在线观看 | 五月香婷婷 | 91中文| 少妇媚药按摩中文字幕 | 成人a免费 | 国产午夜视频在线播放 | 成av人片一区二区三区久久 | av在线不卡观看 | 国产成人一区二区三区免费看 | 向着小小的花蕾绽放 | 草草国产 | 给我免费观看片在线电影的 | 亚洲毛片在线看 | 欧美日韩精品一区 | 久久久久久久免费 | 制中文字幕音影 | 亚洲在线播放 | 欧美专区在线视频 | 91伦理在线| 久草免费在线视频 | 美女户外露出 | 最新中文字幕视频 | 884aa四虎影成人精品一区 | 婷婷精品一区二区三区 |