日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

頭像識(shí)別 頭像識(shí)別( 三 )


sg.Column(image_viewer_column),
]
]
window = sg.Window("人像添加圣誕帽軟件", layout)
filename = ''
while True:
event, values = window.read()
if event == "Cancel" or event == sg.WIN_CLOSED:
break
if event == "-FOLDER-":
folder = values["-FOLDER-"]
try:
file_list = os.listdir(folder)
except:
file_list = []
fnames = [
f
for f in file_list
if os.path.isfile(os.path.join(folder, f))
and f.lower().endswith((".jpg", ".png"))
]
window["-FILE LIST-"].update(fnames)
elif event == "-FILE LIST-":
try:
filename = os.path.join(values["-FOLDER-"], values["-FILE LIST-"][0])
if filename.endswith('.jpg'):
im = cv2.imread(filename)
cv2.imwrite(filename.replace('jpg', 'png'), im)
window["-IMAGE-"].update(filename=filename.replace('jpg', 'png'))
except Exception as e:
print(e)
elif event == "Go":
try:
# output = add_hat(filename)
# 展示效果
# cv2.imshow("output",output)
# cv2.waitKey(0)
# cv2.imwrite("output.png",output)
# print(output)
window["-IMAGE-"].update(filename='output.png')
except:
print('OMG!添加失敗了!')
cv2.destroyAllWindows()
這里我選用的是 PySimpleGUI 框架來做的,比較簡(jiǎn)單 。界面分為左右兩部分,左邊是兩個(gè)按鈕(確定和取消)加一個(gè)文件夾選擇器,再加一個(gè)圖片文件列表;右邊是一個(gè)圖片展示框 。
左邊選擇文件夾后,會(huì)在下方列出文件夾里包含 .png 和 .jpg 的圖片列表 。點(diǎn)擊圖片列表中的圖片,會(huì)在右邊顯示你所選擇的圖片 。這個(gè)選中的圖片也就是我們后面需要添加圣誕帽的圖片 。
這里需要注意的是,PySimpleGUI 的圖片展示默認(rèn)只支持 png 格式的,所以我在展示的時(shí)候做了判斷,如果是 jpg 格式的圖片,我就用 cv2 將其轉(zhuǎn)換成 png 格式,然后再進(jìn)行展示 。
到這里,我們的關(guān)鍵步驟就完成了 。接下來就是將我們兩部分代碼進(jìn)行整合 。其實(shí)也很簡(jiǎn)單,只需要在 GUI 界面上用戶點(diǎn)擊 “生成” 按鈕時(shí),后臺(tái)接收到圖片的路徑,傳遞給我們的圖片處理函數(shù),在處理完后將圖片保存在文件夾下,并更新 GUI 界面右邊的展示的圖片即可 。
最終的運(yùn)行效果:
打包軟件
打包軟件我們還是用熟悉的 pyinstaller 模塊,將代碼打包成可執(zhí)行的 exe 格式 。
首先下載我們所需的模塊包:
pip install pyinstaller
接著在命令行敲下打包命令:
pyinstaller christmashat.py
這個(gè) christmashat.py 就是我們所寫的程序了 。
打包比較耗時(shí),耐心等著就行 。打包完成后,在我們代碼的目錄下會(huì)生成三個(gè)文件夾:
__pycache__builddist
我們只需要關(guān)注 dist 就行 。dist 文件夾下面是 christmashat 子文件夾,再進(jìn)去就可以找到我們的 christmashat.exe 文件了 。由于我們的程序運(yùn)行有兩個(gè)依賴文件,分別是我們的圣誕帽圖片和我們的人臉識(shí)別訓(xùn)練集,所以我們需要將這兩個(gè)文件放入這個(gè) EXE 文件所在的文件夾下 。
現(xiàn)在雙擊 christmashat.exe 文件就可以正常運(yùn)行了 。
總結(jié)
本文從一個(gè)實(shí)際需求出發(fā),向大家講解了一個(gè)頭像添加圣誕帽軟件的誕生過程 。相對(duì)于之前的一些小應(yīng)用來說,涉及的知識(shí)點(diǎn)較多,可能還是有點(diǎn)復(fù)雜的 。其中有一些知識(shí)點(diǎn)限于篇幅原因沒有詳細(xì)講解,大家可以自己私下補(bǔ)充 。
(今完)

推薦閱讀