python自动把照片变成动漫,将个人头像一键变成漫画

  python自动把照片变成动漫,将个人头像一键变成漫画

  今天,边肖将为您详细介绍如何用Python语言制作UI界面。可以一键实现头像照片转换成动漫风格的功能。有兴趣的话可以去试试。

  

目录
PyQt5框架代码逻辑最近在Github上看到一个把头像转换成动漫风格的项目,但是对于很多没有技术背景的同学来说,可能不知道怎么用。边肖今天做了一个UI界面,一键就可以实现头像照片转换成动漫风格的功能。

  

PyQt5框架

  用Python编程语言制作ui界面的框架有很多。原则上,您可以使用任何方便的框架。边肖在这里使用PyQt框架,因为它支持手工绘制控件,并且可以动态加载。我们在Pycharm中添加QtDesigner,作为设置界面和生成UI文件的外部工具。这些步骤如下

  需要填写的内容包括:

  Name:可以自行定制program:QtDesigner的安装路径。这里边肖指的是安装在Anaconda下的PyQt5-tools的相关文件。参数:不填写目录:导入成功后,我们将打开QtDesigner的初始界面。

  然后在界面的左侧,我们可以看到一系列的空格,我们可以将这些控件拖放到界面中来设计UI。

  常用的控制包括:

  按钮:按钮行编辑:文本编辑框标签:标签水平线:水平图形视图:绘画

  

代码逻辑

  当我们点击“选择图片”上传图片时,代码如下

  #选择要上传的本地图像

  def openImage(自身):

  Global imgNamepath #在这里,图像路径被设置为一个全局变量,以便在其他地方引用。

  Imme path,imgtype=qfile dialog . get open filename(self . ui,选择图片, D:\\ , *。jpg;*.png;所有文件(*))

  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())

  #在标签控件上显示选定的图片

  self.ui.label_4.setPixmap(img)

  self.ui.label_4.repaint()

  #显示所选图片的路径

  self . ui . lineedit . settext(imgNamepath)

  同样,当我们单击“保存”按钮时,我们可以将图片保存到本地,代码如下。

  def保存图像(自身):

  img=self.ui.label_5.pixmap()。toImage()

  Fpath,ftype=qfiledialog . getsave filename(self . ui, save , D:\\ , *。jpg;*.png;所有文件(*))

  img.save(fpath)

  当我们点击“开始”按钮时,我们尝试将上传的图片转换成动漫风格,代码如下

  def startAction(自身):

  net=生成器()

  net.load_state_dict(torch.load(。/weights/face_paint_512_v2.pt ,map_location=cpu ))

  net.to(cpu )。eval()

  image=self . load _ image(imgNamepath)

  打印(开始加载图片.)

  用torch.no_grad():

  image=to_tensor(图像)。unsqueze(0)* 2-1

  out=net(image.to(cpu ),False)。cpu()

  out=out.squeeze(0)。剪辑(-1,1) * 0.5 0.5

  out=to_pil_image(out)

  image_name=imgNamepath.split( . )[0]

  out.save(image_name _animegan 。png’)

  打印(图像保存成功!)

  imgShow=QtGui。QPixmap(image_name _animegan 。png’)。scaled(self.ui.label_5.size(),aspectMode=Qt。KeepAspectRatio)

  self . ui . label _ 5 . setfixedsize(img show . width()、imgShow.height())

  self . ui . label _ 5 . setscaledcontents(True)

  self . ui . label _ 5 . setpixmap(img show)

  打印(f 图像保存: {图像名称} )

  在代码中,我们参考了预先训练好的神经网络,默认使用计算机的CPU来运行这个模型,所以整体运行需要一些时间,这取决于不同计算机的硬件配置。代码的其余部分如下所示。

  Pic1:级

  def __init__(self):

  self.ui=QUiLoader()。加载( pic_1.ui )

  self . ui . push button . clicked . connect(self . open image)

  self . ui . push button _ 2 . clicked . connect(self . start action)

  self . ui . push button _ 3 . clicked . connect(self . save image)

  然后我们开始运行整个界面。

  if __name__==__main__:

  app=QA application([])

  #显示创建的界面

  MainWindow=Pic1() #创建一个表单对象

  MainWindow.ui.show() #显示表单

  当程序关闭时,退出进程

  效果如下

  最后,我们通过pyinstaller将其打包成一个exe可执行文件。当然,我们在代码中使用外部第三方文件,所以打包过程会比单个文件复杂。下一篇文章会详细讲解如何操作。

  以上是用Python一键把头像变成动漫风格的细节。更多关于Python头像变身动漫风格的信息,请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: