<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近在Github
上面有看到將頭像轉化成動漫風的專案,但是對於不少沒有技術背景的同學來說可能就不知道該怎麼使用了,小編今天製作了一個UI介面,大家可以通過一鍵點選就實現頭像照片轉化成動漫風格的功能。
用Python
程式語言來製作UI介面的框架有很多哈,大家原則上哪種框架用的順手就用哪種框架,小編這裡使用的是PyQt
的框架,因為它支援手動繪製控制元件,並且可以動態載入,我們在Pycharm
當中新增上QtDesigner
作為外部工具,來進行介面設定,生成ui
檔案,步驟如下
其中需要填寫的內容當中:
QtDesigner
的安裝路徑,小編這裡參照的是Anaconda
下面安裝的PyQt5-tools
的相關檔案在匯入成功之後,我們開啟QtDesigner
的初始介面
然後在介面的左邊,我們能看到一系列的空間,我們可以將這些控制元件拖拽到介面當中進行UI的設計,
其中常用的控制元件有:
當我們點選“選擇圖片”實現圖片上傳的功能,程式碼如下
# 選擇本地圖片上傳 def openImage(self): global imgNamepath # 這裡為了方便別的地方參照圖片路徑,將其設定為全域性變數 imgNamepath, imgType = QFileDialog.getOpenFileName(self.ui, "選擇圖片", "D:\", "*.jpg;;*.png;;All Files(*)") img = QtGui.QPixmap(imgNamepath).scaled(self.ui.label_4.size(), aspectMode=Qt.KeepAspectRatio) print("img: ", img.width(), img.height()) self.ui.label_4.setFixedSize(img.width(), img.height()) # 在label控制元件上顯示選擇的圖片 self.ui.label_4.setPixmap(img) self.ui.label_4.repaint() # 顯示所選圖片的路徑 self.ui.lineEdit.setText(imgNamepath)
同樣地,當我們點選“儲存”按鈕的時候,實現圖片儲存在原生的功能,程式碼如下
def saveImage(self): img = self.ui.label_5.pixmap().toImage() fpath, ftype = QFileDialog.getSaveFileName(self.ui, "儲存", "D:\", "*.jpg;;*.png;;All Files(*)") img.save(fpath)
而當我們點選“開始”按鈕的時候便嘗試將上傳的圖片轉換成動漫風格,程式碼如下
def startAction(self): net = Generator() net.load_state_dict(torch.load("./weights/face_paint_512_v2.pt", map_location="cpu")) net.to("cpu").eval() image = self.load_image(imgNamepath) print("開始載入圖片.......") with torch.no_grad(): image = to_tensor(image).unsqueeze(0) * 2 - 1 out = net(image.to("cpu"), False).cpu() out = out.squeeze(0).clip(-1, 1) * 0.5 + 0.5 out = to_pil_image(out) image_name = imgNamepath.split(".")[0] out.save(image_name + "_animegan" + ".png") print("圖片儲存成功!!") imgShow = QtGui.QPixmap(image_name + "_animegan" + ".png").scaled(self.ui.label_5.size(), aspectMode=Qt.KeepAspectRatio) self.ui.label_5.setFixedSize(imgShow.width(), imgShow.height()) self.ui.label_5.setScaledContents(True) self.ui.label_5.setPixmap(imgShow) print(f"image saved: {image_name}")
程式碼中我們是參照了預先訓練完成的神經網路,並且預設的是用電腦的CPU來跑這個模型,所以整體執行下來需要點時間,這個根據不同電腦的硬體設定而定,其餘的程式碼如下所示
class Pic1: def __init__(self): self.ui = QUiLoader().load('pic_1.ui') self.ui.pushButton.clicked.connect(self.openImage) self.ui.pushButton_2.clicked.connect(self.startAction) self.ui.pushButton_3.clicked.connect(self.saveImage)
然後我們開始執行整個介面
if __name__ == '__main__': app = QApplication([]) # 顯示建立的介面 MainWindow = Pic1() # 建立表單物件 MainWindow.ui.show() # 顯示錶單 app.exit(app.exec_()) # 程式關閉時退出程序
效果如下
最後的最後我們通過pyinstaller
將其打包成exe
可執行檔案,當然程式碼當中我們用到了外部的第三方檔案,因此打包的過程也會比單個檔案的打包會更加的複雜一些,下一篇文章中小編再來詳細的說明如何操作
以上就是利用Python實現一鍵將頭像轉成動漫風的詳細內容,更多關於Python頭像轉動漫風的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45