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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。