成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

怎么利用Python實(shí)現(xiàn)一鍵將頭像轉(zhuǎn)成動(dòng)漫風(fēng)?

89542767 / 426人閱讀

  Python的用處還是比較的大的,在工作當(dāng)中,方方面面的都會(huì)遇到使用Python這門技能。那么,怎么實(shí)現(xiàn)圖形之間的轉(zhuǎn)換呢?比如,將我們平常的頭像,轉(zhuǎn)換成為動(dòng)漫風(fēng)格的呢?下面就給大家詳細(xì)解答下。


  最近在Github上面有看到將頭像轉(zhuǎn)化成動(dòng)漫風(fēng)的項(xiàng)目,但是對(duì)于不少?zèng)]有技術(shù)背景的同學(xué)來說可能就不知道該怎么使用了,小編今天制作了一個(gè)UI界面,大家可以通過一鍵點(diǎn)擊就實(shí)現(xiàn)頭像照片轉(zhuǎn)化成動(dòng)漫風(fēng)格的功能。


  PyQt5框架


  用Python編程語言來制作UI界面的框架有很多哈,大家原則上哪種框架用的順手就用哪種框架,小編這里使用的是PyQt的框架,因?yàn)樗С质謩?dòng)繪制控件,并且可以動(dòng)態(tài)加載,我們?cè)赑ycharm當(dāng)中添加上QtDesigner作為外部工具,來進(jìn)行界面設(shè)置,生成ui文件,步驟如下

01.png

  其中需要填寫的內(nèi)容當(dāng)中:


  Name:可以自己自定義


  program:QtDesigner的安裝路徑,小編這里引用的是Anaconda下面安裝的PyQt5-tools的相關(guān)文件


  parameter:不填


  directory:


  在導(dǎo)入成功之后,我們打開QtDesigner的初始界面

02.png

  然后在界面的左邊,我們能看到一系列的空間,我們可以將這些控件拖拽到界面當(dāng)中進(jìn)行UI的設(shè)計(jì),

03.png

  其中常用的控件有:


  Push Button:按鈕


  Line Edit:文本編輯框


  Label:標(biāo)簽


  Horizontal Line:水平線


  Graphics View:繪畫


  代碼邏輯


  當(dāng)我們點(diǎn)擊“選擇圖片”實(shí)現(xiàn)圖片上傳的功能,代碼如下


  #選擇本地圖片上傳


  def openImage(self):
  global imgNamepath#這里為了方便別的地方引用圖片路徑,將其設(shè)置為全局變量
  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)
  同樣地,當(dāng)我們點(diǎn)擊“保存”按鈕的時(shí)候,實(shí)現(xiàn)圖片保存在本地的功能,代碼如下
  def saveImage(self):
  img=self.ui.label_5.pixmap().toImage()
  fpath,ftype=QFileDialog.getSaveFileName(self.ui,"保存","D:","*.jpg;;*.png;;All Files(*)")
  img.save(fpath)
  而當(dāng)我們點(diǎn)擊“開始”按鈕的時(shí)候便嘗試將上傳的圖片轉(zhuǎn)換成動(dòng)漫風(fēng)格,代碼如下
  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}")


  代碼中我們是引用了預(yù)先訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò),并且默認(rèn)的是用電腦的CPU來跑這個(gè)模型,所以整體運(yùn)行下來需要點(diǎn)時(shí)間,這個(gè)根據(jù)不同電腦的硬件配置而定,其余的代碼如下所示


  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)

  然后我們開始運(yùn)行整個(gè)界面


  if __name__=='__main__':
  app=QApplication([])
  #顯示創(chuàng)建的界面
  MainWindow=Pic1()#創(chuàng)建窗體對(duì)象
  MainWindow.ui.show()#顯示窗體
  app.exit(app.exec_())#程序關(guān)閉時(shí)退出進(jìn)程

03.png

04.png

  最后的最后我們通過pyinstaller將其打包成exe可執(zhí)行文件,當(dāng)然代碼當(dāng)中我們用到了外部的第三方文件,因此打包的過程也會(huì)比單個(gè)文件的打包會(huì)更加的復(fù)雜一些,下一篇文章中小編再來詳細(xì)的說明如何操作


  以上就位大家總結(jié)完畢了,希望可以為各位讀者帶來幫助。


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128319.html

相關(guān)文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • python機(jī)器/深度學(xué)習(xí)項(xiàng)目匯總

    摘要:作者微信公眾號(hào)的皮卡丘歡迎大家搜索關(guān)注知乎機(jī)器學(xué)習(xí)美顏簡(jiǎn)單品讀小說實(shí)現(xiàn)顏值預(yù)測(cè)預(yù)測(cè)比賽結(jié)果制作且版飛機(jī)大戰(zhàn)實(shí)現(xiàn)簡(jiǎn)單的換臉術(shù)遺傳算法擬合圖像實(shí)現(xiàn)貓臉檢測(cè)分析個(gè)人音樂收藏垃圾郵件識(shí)別深度學(xué)習(xí)強(qiáng)化學(xué)習(xí)玩破解游戲?qū)崿F(xiàn)簡(jiǎn)單的機(jī)器翻譯模型學(xué)寫作實(shí)現(xiàn)文本 作者:Charles微信公眾號(hào):Charles的皮卡丘(歡迎大家搜索關(guān)注)知乎:https://zhuanlan.zhihu.com/p/... ...

    toddmark 評(píng)論0 收藏0
  • 圖片處理看這篇就完了「GitHub 熱點(diǎn)速覽 v.21.48」

    摘要:作者小魚干圖像處理一直是個(gè)實(shí)用且熱門的研究領(lǐng)域,而本周的項(xiàng)目則多個(gè)圖像項(xiàng)目上榜。最后是用途更廣的圖片壓縮工具,的復(fù)雜度僅為它能快速對(duì)圖片進(jìn)行無損壓縮。作者:HelloGitHub-小魚干圖像處理一直是個(gè)實(shí)用且熱門的研究領(lǐng)域,而本周的 GitHub 項(xiàng)目則多個(gè)圖像項(xiàng)目上榜。先是勉強(qiáng)和圖像處理搭邊的渲染引擎 Filament,它能渲染出效果極佳的 3D 實(shí)物圖。再是去年很火的聲稱漫畫風(fēng)圖片的 A...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • Python爬蟲之足球小動(dòng)漫(圖片)下載

    摘要:本屆世界杯中,在日本與比利時(shí)的比賽中,日本球迷們高舉隊(duì)長(zhǎng)小翼的畫面就足以證明這部動(dòng)漫對(duì)日本足球的深遠(yuǎn)影響。本文將介紹如何利用爬蟲來下載足球小將的動(dòng)漫圖片。 ??盡管俄羅斯世界杯的熱度已經(jīng)褪去,但這屆世界杯還是給全世界人民留下了無數(shù)難忘的回憶,不知你的回憶里有沒有日本隊(duì)的身影?本次世界杯中,日本隊(duì)的表現(xiàn)讓人眼前一亮,很難想象,就是這樣一只隊(duì)伍,二十幾年還是我們國家足球隊(duì)的水平一樣,也許還...

    tolerious 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<