Python Opencv实现最强美颜滤镜效果

目录
  • 前言
  • 环境安装
  • 效果展示
    • 第一组随机
    • 第二组随机
  • 源码展示
  • 额外的小知识补充:
    • 加载图片:
    • 图片模糊处理:
  • 总结

前言

继老干妈、辣条之后,中国美颜软件在海外一夜成名,把所有人都幻化成了粉红小甜心。

人类学者克里斯特尔·阿比丁博士认为,这是一种亚洲风情的文化扩散。

哈喽!哈喽,我是木子!

“亚洲四大邪术”之一的中国美颜术绝非浪得虚名——

根据小编的第八定律,99% 的人拍了照在发朋友圈之前,都会给自己P一P。

并且都信奉着一个真理:美颜过后的自己,才是真正的自己。​

最初,大家修改的范围也仅仅是磨个皮,让自己白两度。

但这终究无法满足,他们日渐增长的对美的渴望。​

于是,瘦脸+大眼又成了必备步骤。于是越来越多的项目都成为了大家的必备........

还有少数天选之人,将各类技术融会贯通,修容之技出神入化。我们通常称他们为——百万P图大神。这些人的作品膜拜就好,至于怎么 P 的,咱也不知道,咱也不敢问。

今天小编就来写一版Python代码美颜给大家!

环境安装

本文是由Opencv写的小程序。

涉及运行环境:Python3.7、Pycharm社区版、opencv模块。

pip install +模块名 或pip install -i https://pypi.douban.com/simple/ opencv-python

效果展示

第一组随机

原图——

效果图——

看起来,有点……

其实,两位小姐姐美颜后还是可以的……

(广大朋友们以后找对象就不要看照片了吧网恋也需要谨慎啊)

设置的美颜程度是40,搞成100的话有点虚…………

不管怎么说,美颜后看起来比美颜前好看多了~~~

第二组随机

这小姐姐颜值还是挺高的哈,美颜前后也就差不多~

源码展示

from tkinter import *
import cv2          # pip install opencv-python
from tkinter import messagebox
import os

def fix_photo():
    content = entry.get()
    con = content.strip()
    name = con.split(r'.')[0].split(r'/')[-1]
    if con == "":
        messagebox.showinfo("提示","请输入正确的照片的路径!")
    else:
       try:
           image = cv2.imread(con)
           value = 40
           # value是美颜程度,值越大程度越大,值越小程度越小
           image_dst = cv2.bilateralFilter(image, value, value * 2, value / 2)
           # 把美颜后的效果生成一张照片
           path = 'photos_after_beauty'
           if not os.path.exists(path):
               os.mkdir(path)
           cv2.imwrite(path + '/' + "%s.jpg" % (name), image_dst)
           messagebox.showinfo("提示", "图片已经美颜成功!")
       except EXCEPTION as error:
           pass
       # 自动清空输入框内容
       entry.delete(0,END)

window = Tk()
window.title("Python美颜工具1.0")
window.geometry("300x100+200+200")
window.resizable(0,0)
label = Label(window,text="图片地址:",font=("仿宋",12))
label.grid(row=0,column=0)
entry = Entry(window,width="28")
# entry不能和grid连写,否则会报错
entry.grid(row=0,column=1)
label2 = Label(window,text="").grid(row=1,column=0)
label3 = Label(window,text="").grid(row=2,column=0)
button1 = Button(window,text="开始美颜",font=("仿宋",12),command=fix_photo)
button1.grid(row=3,column=0)
button2 = Button(window,text="退出软件",font=("仿宋",12),command=window.quit)
button2.grid(row=3,column=1,sticky="e")
window.mainloop()

额外的小知识补充:

美颜的小知识上面已经说过就不说啦!这里小编简单说一下cv2的加载图片+图片模糊!

加载图片:

import cv2          # pip install opencv-python
# 1、加载一张目标图片
image = cv2.imread("qingchundou.jpeg")
# 2、创建一个窗口,用来展示图片
cv2.namedWindow("window")
# 3、定义一个函数:实时鼠标状态的点击
def draw(event,x,y,flags,param):
    if event == cv2.EVENT_LBUTTONDOWN:
        print('鼠标->按下')
    elif event == cv2.EVENT_MOUSEMOVE:
        print('鼠标->滑动')
    elif event == cv2.EVENT_LBUTTONUP:
        print('鼠标->抬起')

# 4、监听鼠标事件的回调
cv2.setMouseCallback('window',draw)
# 5、展示窗口
cv2.imshow('window',image)
# bug闪退,窗口无线等待,等着用户来操作
cv2.waitKey()
# 6、销毁窗口,优化
cv2.destroyAllWindows()

这时候,就会有一个窗口加载图片。

图片模糊处理:

import cv2          # pip install opencv-python
image = cv2.imread('qingchundou.jpeg')
# 图片模糊,第一个参数:模糊的对象,第二个参数:模糊程度的大小,值越大,程度越大
image_dst = cv2.blur(image,(15,15))
cv2.namedWindow("window")
cv2.imshow('window',image_dst)
cv2.waitKey()
cv2.destroyAllWindows()

总结

opencv是一个很强大的库,支持多个编程语言!大家有兴趣的可以试一试!

以上就是Python Opencv实现最强美颜滤镜效果的详细内容,更多关于Python Opencv滤镜的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python实现在线批量美颜功能过程解析

    结果 然后直接放源码: import cv2 as cv source = cv.imread("zhaopian.jpg") dst = cv.bilateralFilter(src=source, d=0, sigmaColor=30, sigmaSpace=15) cv.imshow("source", source) cv.imshow("dst", dst) cv.waitKey() cv.destroyAllWindows() 好了,

  • 基于Opencv制作的美颜相机带你领略美颜特效的效果

    目录 导语 正文 总结 导语 ​现在每一次出门,女友就喜欢拍照!BUT 嫌弃我给拍的照片角度不对,采光不好....... ​ 总之一大堆理由,啥时候让我拍照的水平能有美颜相机三分之一的效果就好!​ 果然都是锻炼出来的,至少现在我能看出来朋友圈哪些小姐姐批没批过照片.​ ​​ ​逃不掉​ ​逃不掉啊,为了摆脱这种局面-- 立马给女友写了一款简易版本的美颜相机给她偷偷的用!这样子就不担心被锤了.机智如我.jpg ​​ 正文 环境安装: dlib库的安装 本博客提供三种方法进行安装 T1方法:pip

  • Python实战之基于OpenCV的美颜挂件制作

    目录 基于 Snapchat 的增强现实 胡子挂件融合 完整代码 眼镜挂件融合 完整代码 基于 Snapchat 的增强现实 胡子挂件融合 第一个项目中,我们将在检测到的脸上覆盖了一个小胡子.我们可以使用从摄像头捕获的连续视频帧,也可以使用单张测试图像.在进行实际讲解程序的关键步骤前,首先查看应用程序预期输出的结果图像: 项目的第一步是检测图像中的人脸.如上图所示,使用青色矩形绘制图像中检测到的人脸的位置和大小:接下来迭代图像中所有检测到的人脸,在其区域内搜索鼻子,粉红色矩形表示图像中检测到的鼻

  • OpenCV利用高斯模糊实现简单的磨皮美颜效果

    目录 1.高斯模糊 1.什么是高斯模糊 2.opencv提供的API 2.双边模糊 1.什么是双边模糊 2.opencv的API 3.磨皮美颜效果的实现 1.实现过程 2.主要代码 3.效果 1.高斯模糊 1.什么是高斯模糊 前面我们就知道了均值模糊和中值模糊,现在我们开始了解高斯模糊. 首先高斯指的是高斯函数,这个我想大家应该都知道,是一种非常常见的概率分布函数.大概就长这样吧. 通过均值模糊类比,我们可以大胆的猜出来高斯模糊的含义: 每一次需要处理的像素矩阵中不同地方的像素的值在最后的赋值像

  • Python Opencv实现最强美颜滤镜效果

    目录 前言 环境安装 效果展示 第一组随机 第二组随机 源码展示 额外的小知识补充: 加载图片: 图片模糊处理: 总结 前言 继老干妈.辣条之后,中国美颜软件在海外一夜成名,把所有人都幻化成了粉红小甜心. 人类学者克里斯特尔·阿比丁博士认为,这是一种亚洲风情的文化扩散. 哈喽!哈喽,我是木子! “亚洲四大邪术”之一的中国美颜术绝非浪得虚名—— 根据小编的第八定律,99% 的人拍了照在发朋友圈之前,都会给自己P一P. 并且都信奉着一个真理:美颜过后的自己,才是真正的自己.​ 最初,大家修改的范围也

  • Python OpenCV实现3种滤镜效果实例

    目录 前言 浮雕滤镜效果 雕刻滤镜效果 凸透镜滤镜效果 总结 前言 本篇文章要使用OpenCV.Numpy 和Math这3个工具包实现一个简单的滤镜编辑器.在这个滤镜编辑器中,包含了3种滤镜效果,它们分别是浮雕滤镜.雕刻滤镜和凸透镜滤镜.本篇文章将对目标图像(如图1所示)进行处理,使得目标图像分别呈现浮雕滤镜(如图2所示).雕刻滤镜(如图3所示)和凸透镜滤镜(如图4所示)的视觉效果. 浮雕滤镜效果 为了实现浮雕滤镜效果,首先要把实现浮雕滤镜效果的原理搞清楚.弄明白.实现浮雕滤镜效果的原理如下所示

  • python+opencv实现的简单人脸识别代码示例

    # 源码如下: #!/usr/bin/env python #coding=utf-8 import os from PIL import Image, ImageDraw import cv def detect_object(image): '''检测图片,获取人脸在图片中的坐标''' grayscale = cv.CreateImage((image.width, image.height), 8, 1) cv.CvtColor(image, grayscale, cv.CV_BGR2GR

  • python opencv之SIFT算法示例

    本文介绍了python opencv之SIFT算法示例,分享给大家,具体如下: 目标: 学习SIFT算法的概念 学习在图像中查找SIFT关键的和描述符 原理: (原理部分自己找了不少文章,内容中有不少自己理解和整理的东西,为了方便快速理解内容和能够快速理解原理,本文尽量不使用数学公式,仅仅使用文字来描述.本文中有很多引用别人文章的内容,仅供个人记录使用,若有错误,请指正出来,万分感谢) 之前的harris算法和Shi-Tomasi 算法,由于算法原理所致,具有旋转不变性,在目标图片发生旋转时依然

  • Python OpenCV实现边缘检测

    本文实例为大家分享了Python OpenCV实现边缘检测的具体代码,供大家参考,具体内容如下 1. Sobel 算子检测 Sobel 算子是高斯平滑和微分运算的组合,抗噪能力很强,用途也很多,尤其是效率要求高但对细纹理不是很在意的时候. 对于不连续的函数,有: 假设要处理的图像为I,在两个方向求导. 水平变化:用奇数大小的模板对图像I卷积,结果为Gx.例如,当模板大小为3时,Gx为: 垂直变化:用奇数大小的模板对图像I卷积,结果为Gy.例如,当模板大小为3时,Gy为: 在图像的每个点,结合以上

  • Python OpenCV学习之图像滤波详解

    目录 背景 一.卷积相关概念 二.卷积实战 三.均值滤波 四.高斯滤波 五.中值滤波 六.双边滤波 七.Sobel算子 八.Scharr算子 九.拉普拉斯算子 十.Canny算法 背景 图像滤波的作用简单来说就是将一副图像通过滤波器得到另一幅图像:明确一个概念,滤波器又被称为卷积核,滤波的过程又被称为卷积:实际上深度学习就是训练许多适应任务的滤波器,本质上就是得到最佳的参数:当然在深度学习之前,也有一些常见的滤波器,本篇主要介绍这些常见的滤波器: 一.卷积相关概念 卷积核大小一般为奇数的原因:

  • Python OpenCV图像处理之图像滤波特效详解

    目录 1分类 2邻域滤波 2.1线性滤波 2.2非线性滤波 3频域滤波 3.1低通滤波 3.2高通滤波 1 分类 图像滤波按图像域可分为两种类型: 邻域滤波(Spatial Domain Filter),其本质是数字窗口上的数学运算.一般用于图像平滑.图像锐化.特征提取(如纹理测量.边缘检测)等,邻域滤波使用邻域算子——利用给定像素周围像素值以决定此像素最终输出的一种算子 频域滤波(Frequency Domain Filter),其本质是对像素频率的修改.一般用于降噪.重采样.图像压缩等. 按

  • Python OpenCV之常用滤波器使用详解

    目录 1. 滤波器 1.1 什么是滤波器 1.2 关于滤波核 1.3 素材选择 2.均值滤波器 cv2.blur() 2.1 语法简介 2.2 代码示例 3. 中值滤波器 cv2.medianBlur() 代码示例 4. 高斯滤波器 cv2.GaussianBlur() 5. 双边滤波器 cv2.bilateralFilter() 1. 滤波器 1.1 什么是滤波器 滤波器是对图像做平滑处理 的一种常用工具. 平滑处理即在尽可能地保留原图像信息的情况下,对像素值进行微调,使邻近的像素值之间,值的

  • Python Opencv实战之文字检测OCR

    目录 1.相关函数的讲解 2.代码展示 Detecting Words Detecting ONLY Digits 3.问题叙述 4.image_to_data()配置讲解 5.项目拓展 6.总结与评价 1.相关函数的讲解 image_to_data()的输出结果是表格形式,输出变量的类型依旧是字符串. 你会得到一个这样的列表['level', 'page_num', 'block_num', 'par_num', 'line_num', 'word_num', 'left', 'top', '

  • Python+OpenCV实现黑白老照片上色功能

    目录 导语 一.环境准备 二.代码展示 三.效果展示 导语 我们都知道,有很多经典的老照片,受限于那个时代的技术,只能以黑白的形式传世.尽管黑白照片别有一番风味,但是彩色照片有时候能给人更强的代入感.今天在这里给大家提供一种给黑白照片上色的方法,尽管无法还原当时真实的颜色,但确实可以达到后期者的心中所想的颜色. 当然,除了让老照片变成彩色这一用途之外,还可以将现时的一些黑白照片自行染上彩色,完全按照自己的想法来上色,再和彩色的原图进行对比,也不失为一种有趣的玩法. ——小故事 年前在家中进行过年

随机推荐