闲着没事在网上找美颜的例子,还真叫我找到了,然后自己就写了很丑很简单的一个小界面,可以实现人脸的磨皮和美白,效果还算不错。美颜部分代码是借鉴的大神的。

meiyan.py

import cv2
import numpy as np
import sys
import cv2
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QDockWidget, QListWidget,QMainWindow,QApplication,QPushButton
from PyQt5.QtGui import *
from untitled import Ui_MainWindowclass camshow(QMainWindow,Ui_MainWindow):def __init__(self, parent=None):super(camshow, self).__init__(parent)self.setupUi(self)self.button.clicked.connect(self.kunkun)self.label.setScaledContents(True)self.label_2.setScaledContents(True)def kunkun(self):img = cv2.imread('D://zopencv//xiajie.jpg')dst = np.zeros_like(img)# int value1 = 3, value2 = 1; 磨皮程度与细节程度的确定v1 = 3v2 = 1dx = v1 * 5  # 双边滤波参数之一fc = v1 * 12.5  # 双边滤波参数之一p = 0.1temp4 = np.zeros_like(img)temp1 = cv2.bilateralFilter(img, dx, fc, fc)temp2 = cv2.subtract(temp1, img)temp2 = cv2.add(temp2, (10, 10, 10, 128))temp3 = cv2.GaussianBlur(temp2, (2 * v2 - 1, 2 * v2 - 1), 0)temp4 = cv2.add(img, temp3)dst = cv2.addWeighted(img, p, temp4, 1 - p, 0.0)dst = cv2.add(dst, (10, 10, 10, 255))Im = dstimage_height, image_width, image_depth = Im.shape  # 获取图像的高,宽以及深度。QIm = cv2.cvtColor(Im, cv2.COLOR_BGR2RGB)  # opencv读图片是BGR,qt显示要RGB,所以需要转换一下QIm = QImage(QIm.data, image_width, image_height,  # 创建QImage格式的图像,并读入图像信息image_width * image_depth,QImage.Format_RGB888)Im2 = imgimage_height, image_width, image_depth = Im2.shape  # 获取图像的高,宽以及深度。QIm2 = cv2.cvtColor(Im2, cv2.COLOR_BGR2RGB)  # opencv读图片是BGR,qt显示要RGB,所以需要转换一下QIm2 = QImage(QIm2.data, image_width, image_height,  # 创建QImage格式的图像,并读入图像信息image_width * image_depth,QImage.Format_RGB888)self.label.setPixmap(QPixmap.fromImage(QIm2))self.label_2.setPixmap(QPixmap.fromImage(QIm))  # 将QI
if __name__ == '__main__':app=QApplication(sys.argv)c=camshow()c.show()sys.exit(app.exec_())

untitled.py

from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(1022, 600)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.frame = QtWidgets.QFrame(self.centralwidget)self.frame.setGeometry(QtCore.QRect(19, 19, 500, 461))self.frame.setFrameShape(QtWidgets.QFrame.Box)self.frame.setFrameShadow(QtWidgets.QFrame.Raised)self.frame.setObjectName("frame")self.label = QtWidgets.QLabel(self.frame)self.label.setGeometry(QtCore.QRect(40, 0, 421, 461))self.label.setObjectName("label")self.frame_2 = QtWidgets.QFrame(self.centralwidget)self.frame_2.setGeometry(QtCore.QRect(529, 20, 481, 461))self.frame_2.setFrameShape(QtWidgets.QFrame.Box)self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)self.frame_2.setObjectName("frame_2")self.label_2 = QtWidgets.QLabel(self.frame_2)self.label_2.setGeometry(QtCore.QRect(50, 0, 391, 451))self.label_2.setObjectName("label_2")self.button = QtWidgets.QPushButton(self.centralwidget)self.button.setGeometry(QtCore.QRect(20, 480, 991, 61))self.button.setObjectName("button")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 1022, 26))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.label.setText(_translate("MainWindow", "原图"))self.label_2.setText(_translate("MainWindow", "整容后。。。"))self.button.setText(_translate("MainWindow", "一键变帅,奥利给!"))

其实这个还可以加比如涂口红之类的,等我研究研究在更新代码。

基于OpenCV+pyqt实现的简单照片美颜相关推荐

  1. 【已经开源】基于opencv+pyqt的人像美容系统

    基于opencv+pyqt的美颜软件 本文禁止转载! 源码地址: 使用效果: 支持功能: 安装依赖: 下载权重: 运行代码: 关注我的公众号: 本文禁止转载! 源码地址: https://github ...

  2. 基于QT的opencv照片美颜及背景更换

    基于QT的opencv照片美颜及背景更换 项目地址:QT美颜系统 一.软件架构 qt2.9.3 opencv3.4.16 二.安装教程 1.将opencv源文件中的cmake文件在qt中打开,通过ca ...

  3. 基于OpenCv的照片美化工具的设计与实现

    随着我们对美好事物的向往,追求更美的自己,尤其是在手机拍照时,更能体现,现在不同的手机拍出的效果截然不同,像华为手机拍照拍出的就特别的清晰,opp手机拍出的效果就非常的柔和,像小米手机拍出的效果就非常 ...

  4. python怎么建立画板_Python基于opencv实现的简单画板功能示例

    本文实例讲述了Python基于opencv实现的简单画板功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np drawing = False # true ...

  5. C++从零实现简单深度神经网络(基于OpenCV)

    代码地址如下: http://www.demodashi.com/demo/11138.html 一.准备工作 ####需要准备什么环境 需要安装有Visual Studio并且配置了OpenCV.能 ...

  6. 基于OpenCV实现简单人脸面具、眼镜、胡须、鼻子特效(详细步骤 + 源码)

    点击下方卡片,关注"OpenCV与AI深度学习"公众号! 视觉/图像重磅干货,第一时间送达! 导读 本文给大家分享一个基于OpenCV实现简单人脸面具.眼镜.胡须.鼻子特效的实例, ...

  7. [机器学习]基于OpenCV实现最简单的数字识别

    http://blog.csdn.net/jinzhuojun/article/details/8579416 本文将基于OpenCV实现简单的数字识别.这里以游戏Angry Birds为例,通过以下 ...

  8. python头像转卡通_Python实现将照片变成卡通图片的方法【基于opencv】

    本文实例讲述了Python实现将照片变成卡通图片的方法.分享给大家供大家参考,具体如下: 之前的文章介绍了使用Photoshop将照片变成卡通图片,今次介绍用代码来实现这项任务,可以就此探查各种滤镜的 ...

  9. 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)

    基于OpenCV的Python人脸识别.检测.框选 (遍历目录下所有照片依次识别 视频随时标注) 移步: https://blog.csdn.net/weixin_53403301/article/d ...

最新文章

  1. 被拒稿、被否定:读博五年间都没有发 paper 是一种怎样的体验?
  2. uliweb新教程--多人博客系统开发
  3. 为什么用python缩进来划分代码_Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?...
  4. 使用Python配合Evernote完成每周工作安排
  5. android WebView总 结
  6. hasCode in Java
  7. jeesit 基于springMVC + mybatis配置多数据源的问题
  8. 职称计算机初级考试题,初级职称计算机考试题库
  9. 计算机中的没有文件怎么处理方法,电脑重启后桌面上文件没有了怎么办
  10. 地图比例尺与空间分辨率之间的关系_航高、分辨率与比例尺的关系
  11. 网上选课系统算法了解
  12. 基于HTML5移动app开发教程一
  13. mdadm chuck_面向所有人的Python-Chuck博士提供的14小时免费Python课程
  14. Verilog语言语句介绍
  15. 递推DP(至少和至多之间的转换
  16. Unity替换 图集
  17. 用js脚本写的仿Windows7的扫雷游戏(高仿真)
  18. halcon基于相关性的模式匹配
  19. 物联网还有哪些创业机会?
  20. C语言:输入某一年的第几天,计算并输出它是这一年的第几月第几日?

热门文章

  1. ArrayList 案例
  2. 基于GMap.Net的天地图使用
  3. Mysql——子查询(非常重要)(十二)
  4. 有哪些音质比较好的蓝牙耳机?2022音质好的蓝牙耳机推荐
  5. 内含全网,无限次数,阿里盘搜。
  6. Android非阻塞读串口,Android 使用非阻塞的方式读写串口
  7. AI图形算法之一:液位计识别
  8. BGP——基本概念1(自治系统、邻居建立)
  9. 高通SDM845平台Sensor学习——1.框架
  10. 绝地求生显示服务器未,绝地求生出现这样提示Starting BattlEye Service...