v(1)PIL库自我学习总结
Hello!今天我们来学习一下这个神奇的图片处理的第三方函数库——PIL库

(本blog部分图片及代码来自网络)

这是一个支持图像存储、显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的缩放、裁剪、叠加以及图像添加条纹,文字等信息等的操作。

首先是利用pip下载一个:

它有许多子库,例如:Image、ImageChops、ImageDraw等等,他们各有神通,发挥着自己的作用,

首先我们当然学习的是经典的Image子库;

方法 描述
Image.open(filename) 根据参数加载图像文件
Image.new(mode,size,color) 根据给定参数创建一个新的图像
Image.open(StringIO.StringIO(buffer)) 从字符串中获取图像
Image.frombytes(mode,size,data) 根据像素点data创建图像
Image.verify() 对图像文件完整性进行检查,返回异常

常用函数

读取一张图片:

im=Image.open(‘test.jpg’)

显示一张图片:

im.show()

保存图片:

im.save(“save.gif”,“GIF”) #保存图像为gif格式

查看图像信息

im.format, im.size, im.mode

图片裁剪:
box=(100,100,500,500)

#设置要裁剪的区域

region=im.crop(box) #此时,region是一个新的图像对象。

改变图像的大小

out=img.resize((128,128))#resize成128*128像素大小

旋转图像

out=img.rotate(45) #逆时针旋转45度

图像类型转换

im=im.convert(“RGBA”)

美白磨皮实现原理

大神提供的算法:
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 ;
大神本神传送门,该算法其实是对 PS 的一种磨皮方案的脚本实现。

Python + OpenCV 实现
网上看到的一个基于上述公式的 python 实现方案beauty_face,但是他再线性光叠加时出错,修正后如beauty_face2(由于对Python矩阵运算不熟悉使用了比较笨的方法实现), 具体见代码:

#!/bin/python

祛痘美白

import numpy as np
import cv2

def beauty_face(img):
‘’’
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 ;
https://my.oschina.net/wujux/blog/1563461
‘’’

dst = np.zeros_like(img)
#int value1 = 3, value2 = 1; 磨皮程度与细节程度的确定
v1 = 3
v2 = 1
dx = 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))
return dst

def beauty_face2(src):
‘’’
Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 ;
‘’’

dst = np.zeros_like(src)
#int value1 = 3, value2 = 1; 磨皮程度与细节程度的确定
v1 = 3
v2 = 1
dx = v1 * 5 # 双边滤波参数之一
fc = v1 * 12.5 # 双边滤波参数之一
p = 0.1temp4 = np.zeros_like(src)temp1 = cv2.bilateralFilter(src,dx,fc,fc)
temp2 = cv2.subtract(temp1,src)
temp2 = cv2.add(temp2, (10,10,10,128))
temp3 = cv2.GaussianBlur(temp2,(2*v2 - 1,2*v2-1),0)
temp4 = cv2.subtract(cv2.add(cv2.add(temp3, temp3), src), (10, 10, 10, 255))dst = cv2.addWeighted(src,p,temp4,1-p,0.0)
dst = cv2.add(dst, (10, 10, 10,255))
return dst

def init():
img = cv2.imread(‘testimg.jpg’)

# blur1 = cv2.GaussianBlur(img, (5,5),0)
# blur2 = cv2.bilateralFilter(img, 9 , 75, 75)
blur3 = beauty_face(img)
blur4 = beauty_face2(img)cv2.imshow('image0', img)
# cv2.imshow('image1', blur1)
# cv2.imshow('image2', blur2)
cv2.imshow('image3', blur3)
cv2.imshow('image4', blur4)#cv2.namedWindow('image', cv2.WINDOW_NORMAL)
#cv2.resizeWindow('image', 1000, 1000) #定义frame的大小cv2.waitKey(0)
cv2.imwrite('result1.png', blur3)
cv2.imwrite('result2.png', blur4)
cv2.destroyAllWindows()

if name == “main”:
init()

磨皮美白搞笑图片处理相关推荐

  1. PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)

    Hello!今天我们来学习一下这个神奇的图片处理的第三方函数库--PIL库 (本blog部分图片及代码来自网络) 这是一个支持图像存储.显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的 ...

  2. 美白,磨皮,搞笑图片处理

    一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. : ...

  3. python用opencv实现图片的美白磨皮_12 - OpenCV+TensorFlow 入门人工智能图像处理-磨皮美白-多智时代...

    磨皮美白 上节课的+固定值,我们还可以变为乘以一个系数. foriinrange(0,height):forjinrange(0,width): (b,g,r)=img[i,j] bb=int(b*1 ...

  4. Portraiture4.1.0最新版PS/LR磨皮美白滤镜插件

    Portraiture这款插件磨皮效率超高  是99%摄影师的必备插件  一秒磨皮,无卡顿,效果好  最新版Portraiture 2023磨皮效果提升很大  之前发布了Portraitrue4.0. ...

  5. 视频也能磨皮美白?教你4步搞定!

    在这个全民美颜的时代中,磨皮已经成为一种常态,照片不P都不好意思发朋友圈!如今人们已经不满足于图片美颜了,视频也要美美哒~ 其实想要给视频美颜的方法有很多,比如美颜相机,软件中的各种美颜滤镜,今天教大 ...

  6. 突发灵感,看到某网站的搞笑图片挺多,做了一个小java,扫描抠了一些

    2019独角兽企业重金招聘Python工程师标准>>> 突发灵感,看到某网站的搞笑图片挺多,做了一个小java,扫描抠了一些 这里分享一下 /*** 取得文件的后缀名* @Descr ...

  7. python读取gif图片并显示_Python爬虫实现获取动态gif格式搞笑图片的方法示例

    本文实例讲述了python爬虫实现获取动态gif格式搞笑图片的方法.分享给大家供大家参考,具体如下: 有时候看到一些喜欢的动图,如果一个个取保存挺麻烦,有的网站还不支持右键保存,因此使用python来 ...

  8. php搞笑证件,摆摊证制作软件app 摆摊证搞笑图片怎么做

    抖音摆摊证怎么做?摆摊搞笑图片怎么做?相信大家的朋友圈最近都被一些摆摊证摆摊图片刷屏了,这种摆摊证摆摊图片的做法其实也非常简单,直接进入指定的网页加入你喜欢的文字进行生成就可以了哦.有需要的话就快来看 ...

  9. 美颜滤镜:早已不是简单的磨皮美白

    近几年来,硬件和算法的发展,让美颜多了很多新玩法.有人工智能加持的美颜滤镜,其恐怖程度,恐怕会超出你的想象. 1.人脸识别技术促进了美颜滤镜的发展 在谈论未来的美颜滤镜之前,我们先来简单回顾.总结一下 ...

最新文章

  1. php 一次性替换多个关键词
  2. Python的安装 || python介绍
  3. 解决在Win2008下IIS7不显验证码的问题
  4. (计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位、逻辑移位和循环移位)
  5. 模块字体不生效_新版iPhone敬业签便签软件怎么将字体调大?
  6. Eclipse中引用依赖库library失败的原因
  7. 性能测试用例、策略和方法
  8. centos7永久修改主机名
  9. springboot整合shiro之thymeleaf使用shiro标签
  10. VBA教程初级(一):简单宏
  11. 计算机科学导论整理知识点,计算机科学导论教程重点
  12. 游戏服务器开发都要学什么
  13. opboot怎么刷入固件_OPPO手机怎么进行系统(固件)升级?(附四种方法)
  14. Frame-relay帧中继网络配置手册
  15. unity3d 虚拟博物馆_基于Unity3d的博物馆移动信息化系统
  16. 完美解决VS2003.Net fatal error LNK1201: 写入程序数据库“.pdb”时出错
  17. 启用和禁用excel 中的加载项
  18. r720服务器怎么查看硬盘性能,r720服务器如何看配置
  19. Allegro模块布局和布局复用
  20. vb.net listview 删除选定行_VBA学习笔记59-1: listview控件

热门文章

  1. 前端js实现本地模糊搜索
  2. 100款现代科技感的英文字体打包分享
  3. 总算挽回点面子,中国上月为印尼发射通信卫星定点成功 运行正常
  4. JAVASCRIPT中THIS指的是什么?
  5. JS下载图片保存在本地
  6. Linux下使用dd命令制作启动盘
  7. include/linux/if_ppp.h:135: error: expected specifier-qualifier-list before 'aligned_u64'
  8. 内温的整体优先效应实验_第四章 知觉10.ppt
  9. Monkey框架(测试方法篇) - monkey测试实例
  10. 西游记中孙悟空所尊敬的神佛