用Python做一個戴口罩軟件

新型冠狀病毒的疫情牽動着全國人民的心,大家都想這個疫情能早一點的過去,大家都能走出家門,而不用蝸居在家中。雖然疫情很可怕,但是大家也要以樂觀積極的心態去面對,今天,小編爲大家帶來了利用python來製作頭像口罩的小軟件,大家可以上傳自己的頭像,來爲自己的頭像添加一個小小的口罩。

先看一下展示圖:

大家只需要上傳自己的正面人臉頭像,並選擇自己喜歡的口罩樣式,便可以製作頭像口罩。下面就跟小編一起來了解一下程序是如何編寫的吧。

01.核心思想

程序最核心的一個地方就是如何識別人臉,以及人臉中嘴部的位置。這裏小編利用的是dlib庫,該庫下有Python可以直接調用dlib庫進行面部模式識別,其中也包含了準度較高的人臉特徵識別。

如上圖所示,dlib的人臉關鍵點檢測會檢測人臉中的68個關鍵的部位,例如36-40檢測的是人的左眼,而48-67檢測的是人的嘴部。我們利用的就是dlib庫進行嘴部位置的識別,然後確定嘴部的座標位置,以及嘴部面積的大小,方便我們後續對口罩的大小進行調整,程序如下圖所示。

得到嘴部的位置和大小之後,接下來我們就是挑選我們喜歡的口罩,並調整口罩的大小,然後將口罩貼到人臉的嘴部位置,程序如下圖所示。

上述程序中我們首先獲取人臉中嘴部的位置和大小,然後通過PIL讀入口罩圖片,並根據嘴部的大小調整口罩的大小,然後將調整大小後的口罩貼到人臉嘴部的位置,並將最終的圖片顯示在軟件中。

02.界面設計

上述我們完成了最爲核心的部分,接下來的程序就是設計我們的軟件,軟件設計採用的是tkinter庫,在軟件界面中我們首先通過載入圖片按鈕來選擇頭像圖片,然後通過四個不同的口罩按鈕來選擇不同的口罩類型,然後進行口罩的穿戴程序,並將最終的結果進行展示,部分程序如下所示。

上述的程序中,展示的是我們定義了一個標籤,標籤的圖形是不同的口罩類型,然後通過標籤綁定不同的事件,通過點擊口罩,我們就可以爲圖像中的人臉佩戴不同形式的口罩。主要都是一些tk的控件佈局,可以文末獲取源碼看一下。

以上就是小編爲大家帶來的口罩穿戴小軟件,大家如果想進行拓展的話,可以考慮圖像中有多個人倆的情況,以及如何調整口罩的位置來更加貼合人臉。

現在口罩是非常緊缺的資源,大家節約用口罩!也希望這次疫情早點過去,小編已經好久沒有下樓了,家裏的白菜都快喫完了。

目前wx搜索Python 【菜鳥學Python】排第二,匯聚了30萬Python愛好者,累計原創近400篇趣味乾貨(爬蟲,數據分析,算法,面試指南,原創趣味實戰,Python遊戲,機器學習),歡迎一起學Python,交流指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章