当前位置: 首页 > news >正文

04-PS人像磨皮方法

1.高斯模糊磨皮

这种方法的原理就是建立一个将原图高斯模糊后图层, 然后用蒙版加画笔或者历史画笔工具将需要磨皮的地方涂抹出来, 通过图层透明度, 画笔流量等参数来控制磨皮程度

1.新建图层(命名为了高斯模糊磨皮), 混合模式设置为正常, 然后选择高斯模糊, 模糊数值设置到看不清皮肤细节就行, 这个依图片情况而定
在这里插入图片描述
2.将高斯模糊磨皮图层设置一个黑色蒙版
在这里插入图片描述

3.用白色画笔涂抹要磨皮的部位, 注意画笔透明读和流量不要太高, 可以粗糙些的皮肤部位数值大些, 细腻些的皮肤部位数值小些, 要灵活调整

磨皮前
在这里插入图片描述

磨皮后

在这里插入图片描述

4.可能这样磨皮后,皮肤没有那么多质感了, 我们可以叠加一个高反差保留层来增加质感

复制磨皮前的图层(祛痘这个图层), 混合模式设置为线性光, 图层顺序并移动至最顶层, 设置为高反差保留,数值设置在刚好能看清细节就行

可以选择底下图层也可见, 然后移动数值滑块, 直到得到满意的皮肤质感,点击确定
在这里插入图片描述

加质感前
在这里插入图片描述

加质感后
在这里插入图片描述

2.反向高反差磨皮

这个方法和高斯模糊差不多, 首先我们知道 图片=细节+光影, 我们通过反向高反差, 得到细节图层, 将细节图层进行一个高斯模糊后, 然后反向并设置蒙版, 通过画笔涂抹来控制减去细节的量, 就得到磨皮效果.

1.首先复制一个图层(命名为反向高反差磨皮), 图层混合模式设置为亮光, ctlr+i 反向图层

在这里插入图片描述

2.接着设置高反差保留,移动数值滑块, 直到皮肤看起来足够平滑为止, 点击确定
在这里插入图片描述

3.高斯模糊反向高反差图层, 移动数值滑块, 直到刚好看得清皮肤纹理, 点击确定
在这里插入图片描述

3.给反向高反差图层设置黑色蒙版, 然后通过白色画笔将要磨皮的部位进行涂抹, 注意灵活控制画笔透明度和流量

在这里插入图片描述
磨皮前
在这里插入图片描述

磨皮后

在这里插入图片描述

3.高低频磨皮

图片=细节+光影, 高低频磨皮通过分离图片的细节(高频)和光影(低频), 两个图层单独进行处理, 细节光影互不影响, 可以结合上面两种方法, 效果就比较好

1.复制两个图层, 并进行命名
在这里插入图片描述
2.将低频层进行高斯模糊, 恰好看不清楚细节就行(注意上层图像暂时设置不可见, 不然观察不到模糊效果), 得到低频层
在这里插入图片描述
3.将高频图层进行应用图层, 由原图层减去低频层, 得到高频图层, 并设置混合模式为线性光
在这里插入图片描述
4.将高低频编组(名字-高低频)
在这里插入图片描述
5.将高频低频图层复制一份, 用来做调整(当然也可以不复制, 直接在该图层上处理图像)

在这里插入图片描述

6.这些去除痘坑就在高频层处理, 可以用蒙版加画笔或者结合高斯模糊, 也可以用修复画笔工具, 在高频层处理不会影响到光影

而光影可以在低频层用混合器画笔, 加深减淡等工具来调整肤色的不均匀, 不会影响到细节

在这里插入图片描述

相关文章:

04-PS人像磨皮方法

1.高斯模糊磨皮 这种方法的原理就是建立一个将原图高斯模糊后图层, 然后用蒙版加画笔或者历史画笔工具将需要磨皮的地方涂抹出来, 通过图层透明度, 画笔流量等参数来控制磨皮程度 1.新建图层(命名为了高斯模糊磨皮), 混合模式设置为正常, 然后选择高斯模糊, 模糊数值设置到看…...

nginx反向代理+负载均衡上传webshell重难点+apache漏洞

nginx反向代理 nginx 负载均衡 负载均衡的策略 1、轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB… upstream mysvr { server 192.168.137.131; server 192.168.137.136; }2、weight:跟据配置…...

transition组件的使用

<template><button click"flag !flag">切换</button><transition name"fade"><div v-if"flag" class"box"></div></transition> </template><script setup lang"ts"&g…...

多行文本在块元素中垂直居中

单行文本垂直居中对齐 在块元素中&#xff0c;让单行文本居中&#xff0c;可以使用line-height等于块元素的高&#xff0c;即可让该单行文本垂直居中对齐。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><me…...

在 WebAssembly 中使用 C/C++ 和 libbpf 编写 eBPF 程序

作者&#xff1a;于桐&#xff0c;郑昱笙 eBPF&#xff08;extended Berkeley Packet Filter&#xff09;是一种高性能的内核虚拟机&#xff0c;可以运行在内核空间中&#xff0c;用来收集系统和网络信息。随着计算机技术的不断发展&#xff0c;eBPF 的功能日益强大&#xff0c…...

leveldb源码解析六——compact

compact分为manual_compaction、minor_compaction、major_compaction&#xff0c;统一由MaybeScheduleCompaction触发&#xff1a; void DBImpl::MaybeScheduleCompaction() {mutex_.AssertHeld();if (background_compaction_scheduled_) {// Already scheduled} else if (shu…...

数据结构(二):单向链表、双向链表

数据结构&#xff08;二&#xff09;一、什么是链表1.数组的缺点2.链表的优点3.链表的缺点4.链表和数组的区别二、封装单向链表1. append方法&#xff1a;向尾部插入节点2. toString方法&#xff1a;链表元素转字符串3. insert方法&#xff1a;在任意位置插入数据4.get获取某个…...

COCO物体检测评测方法简介

本文从ap计算到map计算&#xff0c;最后到coco[0.5:0.95:0.05] map的计算&#xff0c;一步一步拆解物体检测指标map的计算方式。 一、ap计算方法 一个数据集有多个类别&#xff0c;对于该数据库有5个gt&#xff0c;算法检测出来10个bbox&#xff0c;对于人这个类别来说检测有…...

记一次上环境获取资源失败的案例

代码结构以及资源位置 测试代码 RestController RequestMapping("/json") public class JsonController {GetMapping("/user/1")public String queryUserInfo() throws Exception {// 如果使用全路径, 必须使用/开头String path JsonController.class.ge…...

实战超详细MySQL8离线安装

在RedHat中&#xff0c;RPM Bundle 方式安装MySQL8。建议一定要用 RPM Bndle 版本安装&#xff0c;包全。官网下载&#xff1a;https://dev.mysql.com/downloads/mysql/1.卸载mariadb&#xff0c;会与MySQL安装冲突。rpm -qa | grep mariadb 查看有无mariadb如果有&#xff0…...

依赖倒置原则|SOLID as a rock

文章目录 意图动机:违反依赖倒置原则解决方案:C++中依赖倒置原则的例子依赖倒置原则的优点1、可复用性2、可维护性在C++中用好DIP的标准总结本文是关于 SOLID as Rock 设计原则系列的五部分中的 最后一部分。 SOLID 设计原则侧重于开发 易于维护、可重用和可扩展的软件。 在…...

Webpack的知识要点

在前端开发中&#xff0c;一般情况下都使用 npm 和 webpack。   npm是一个非常流行的包管理工具&#xff0c;帮助开发者管理项目中使用的依赖库和工具。它可以方便地为项目安装第三方库&#xff0c;并在项目开发过程中进行版本控制。   webpack是一个模块打包工具&#xff…...

handler解析(2) -Handler源码解析

目录 基础了解&#xff1a; 相关概念解释 整体流程图&#xff1a; 源码解析 Looper 总结&#xff1a; sendMessage 总结&#xff1a; ThreadLocal 基础了解&#xff1a; Handler是一套 Android 消息传递机制,主要用于线程间通信。实际上handler其实就是主线程在起了一…...

【算法】kmp

KMP算法 名称由来 是由发明这个算法的三个科学家的名称首字母组成 作用 用于字符串的匹配问题 举例说明 字符串 aabaabaaf 模式串 aabaaf 传统匹配方法 第一步 aabaabaaf aabaaf 此时&#xff0c;b和f不一致&#xff0c;则把模式串从头和文本串的第二个字符开始比 第…...

git 常用命令之 git checkout

大家好&#xff0c;我是 17。 git checkout 是 git 中最重要最常用的命令之一&#xff0c;本文为大家详细解说一下。 恢复工作区 checkout 的用途之一是恢复工作区。 git checkout . checkout . 表示恢复工作区的所有更改,未跟踪的文件不会有变化。 恢复工作区的所有文件风…...

一些常见错误

500状态码: 代表服务器业务代码出错, 也就是执行controller里面的某个方法的过程中报错, 此时在IDEA的控制台中会显示具体的错误信息, 所以需要去看IDEA控制台的报错404状态码: 找不到资源找不到静态资源 检查请求地址是否拼写错误 检查静态资源的位置是否正确 如果以上都没有问…...

[单片机框架][调试功能] 回溯案发现场

程序莫名死机跑飞&#xff0c;不知道问题&#xff0c;那么下面教你回溯错误源 回溯案发现场一、修改HardFault_Handler1. xx.s 在启动文件&#xff0c;找到HardFault_Handler。并修改。2. 定义HardFault_Handler_C函数。&#xff08;主要是打印信息并存储Flash&#xff09;3. 根…...

MySQL主从同步-(二)搭建从机服务器

在docker中创建并启动MySQL从服务器&#xff1a;**端口3307docker run -d \-p 3307:3306 \-v /atguigu/mysql/slave1/conf:/etc/mysql/conf.d \-v /atguigu/mysql/slave1/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD123456 \--name atguigu-mysql-slave1 \mysql:8.0.3创建MyS…...

Linux系列 备份与分享文档

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.备份与分享文档 1.使用压缩和解压缩工具 &#xff08;1&…...

SNI生效条件 - 补充nginx-host绕过实例复现中SNI绕过的先决条件

文章目录1.前置环境搭建2.测试SNI生效条件(时间)3. 证书对SNI的影响3.1 双方使用同一个证书&#xff1a;3.2 双方使用不同的证书与私钥4. 端口号区分测试4.1 端口号区分&#xff0c;证书区分&#xff1a;4.2 端口号区分,证书不区分&#xff1a;5.总结SNI运行机制6. SNI机制绕过…...

多说话人场景下的设备定向语音检测技术解析

1. 多说话人场景下的设备定向语音检测技术解析在智能语音交互系统中&#xff0c;准确识别用户何时在对设备说话&#xff08;设备定向语音&#xff09;而非与他人交谈&#xff0c;是提升用户体验的关键技术挑战。这项技术被称为设备定向语音检测&#xff08;Device-Directed Spe…...

嵌入式与半导体年度技术趋势:从RISC-V、Matter到EDA 2.0与软件定义汽车

1. 从年度回顾看嵌入式与半导体行业的技术脉搏又到年底复盘时&#xff0c;各大技术媒体都在梳理过去一年的重磅内容。最近看到EE Times整理其编辑Nitin Dahad的2022年度六大精选故事&#xff0c;感触颇深。这六篇文章&#xff0c;像六个精准的切片&#xff0c;生动勾勒了过去一…...

Discord集成Claude智能体:极简Docker容器化部署与安全实践

1. 项目概述&#xff1a;一个为Discord量身定制的Claude智能体运行栈 如果你和我一样&#xff0c;既想在日常工作的Discord频道里无缝调用Claude这样的强大AI助手&#xff0c;又对复杂、臃肿的Bot框架感到头疼&#xff0c;那么 nanoclaw-discord 这个项目可能就是你在找的答…...

AI工作流自动化实践:Claude数据同步工具架构与实现

1. 项目概述与核心价值 最近在折腾AI应用集成的时候&#xff0c;发现一个挺有意思的项目&#xff0c;叫 cam901051/claude-sync 。乍一看这个标题&#xff0c;你可能会有点懵&#xff0c;这到底是干嘛的&#xff1f;简单来说&#xff0c;这是一个旨在实现Claude&#xff08;…...

Java集成Gemma大模型:本地推理与生产部署实战指南

1. 项目概述&#xff1a;当Gemma遇上Java 最近在开源社区里&#xff0c;一个名为 mukel/gemma4.java 的项目引起了我的注意。光看这个标题&#xff0c;熟悉AI模型和Java生态的朋友可能已经会心一笑。没错&#xff0c;这个项目直指一个核心痛点&#xff1a;如何让Google最新推…...

Navicat导入Excel实战:从数据准备到成功入库的完整避坑指南

1. 数据准备&#xff1a;Excel规范整理实战 第一次用Navicat导入Excel时&#xff0c;我对着报错提示整整折腾了两小时。后来才发现&#xff0c;90%的问题都出在数据准备阶段。就像做饭前要洗菜切配&#xff0c;数据导入前也需要做好这些准备工作&#xff1a; 字段命名要像给变量…...

别再手动折腾了!用Stack Builder一键搞定PostGIS 2.1 for PostgreSQL 9.2 (Windows 64位)

告别繁琐配置&#xff1a;用Stack Builder轻松部署PostGIS空间数据库 在Windows环境下配置PostgreSQL的空间扩展PostGIS&#xff0c;传统方式往往需要手动下载安装包、配置环境变量、执行SQL脚本等一系列操作。对于刚接触空间数据库的开发者来说&#xff0c;这个过程既耗时又容…...

VisualCppRedist AIO:告别DLL错误,Windows系统必备的一体化运行库解决方案

VisualCppRedist AIO&#xff1a;告别DLL错误&#xff0c;Windows系统必备的一体化运行库解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打…...

STM32CUBEMX实战指南:串口DMA高效收发与自定义打印函数优化

1. 串口DMA基础与STM32CubeMX配置 第一次用STM32CubeMX配置串口DMA时&#xff0c;我对着密密麻麻的选项差点崩溃。后来发现只要掌握几个关键点&#xff0c;5分钟就能搞定稳定可靠的DMA通信。先解释下为什么需要DMA&#xff1a;当你用传统方式通过串口发送"Hello World&quo…...

别再只盯着原理图了!用Python+OpenCV动手模拟激光三角测距(斜射/直射对比)

用PythonOpenCV模拟激光三角测距&#xff1a;斜射与直射的实战对比 激光三角测距技术听起来高大上&#xff0c;但真正理解它的精髓往往需要跳出公式推导的泥潭。作为一名长期在工业检测领域摸爬滚打的技术人员&#xff0c;我发现用代码模拟物理过程是最有效的学习方式。本文将…...