图像中高频信息、低频信息与ComfyUI中图像细节保留的简单研究

news2024/9/22 23:38:07

🧵背景

在做AI绘图的时候,经常有一些图像的细节需要保留原始图像内容,比如说衣服的细节,商品的文字标签等等,如果这些地方发生了变化,就会导致生成的结果无法直接商用,而让生成的图像完全保留原图中的某些细节,基于diffusion的算法,不太可能直接实现,而基于图像蒙版,又容易让图像本身的接缝或者光影产生很多问题。

最近了解到一种基于图像高频信息保留的方式,可以比较好的保留图像中的细节。

呈现出来大概是这样:

这种方式可以很好的保留图像中的细节,那么这几个节点是怎么实现保留图像细节的呢?

🎄算法来源

如果大家做过设计或者摄影修图,应该都了解过利用高反差保留来实现人像摄影中,皮肤磨皮的前提下实现毛孔等细节的保留,后来也有一些磨皮方法是将图像中高频信息和低频信息分离后,对低频信息的图层进行修正而保留图像的细节。

网络上内容很多,可以搜索“photoshop 高频信息 修图”,这里贴一篇案例,有兴趣的可以在ps中尝试手动实现:

https://www.cnblogs.com/caihongmin/p/17629109.html

那么,这个过程到底做了什么呢,简单来说就是高频信息和低频信息的分离。

高频信息是什么?

在图像处理中,高频信息通常指的是图像中变化剧烈的区域,比如边缘、纹理和细节。这些高频信息对于图像的清晰度和细节表现至关重要。以下是一些关于高频信息的要点:

  1. 定义:高频信息是图像中局部变化快速的部分,与低频信息(图像中的平滑区域)相对。

  2. 重要性:高频信息对于图像的清晰度、边缘的锐度和纹理的细节至关重要。

  3. 应用

    • 图像锐化:通过增强图像的高频部分来提高图像的清晰度。
    • 边缘检测:高频信息有助于识别图像中的边缘。
    • 纹理分析:高频信息有助于识别和分析图像中的纹理特征。
  4. 影响因素

    • 噪声:噪声通常表现为图像中的高频随机变化,可能会影响图像质量。
    • 模糊:图像模糊通常与高频信息的丢失有关。
  5. 处理技术

    • 高通滤波器:用于提取图像中的高频信息,如拉普拉斯滤波器、高通Sobel滤波器等。
    • 频域分析:在频域中,高频信息可以通过对图像进行傅里叶变换来分析。
  6. 图像质量:高频信息的保留对于保持图像的视觉质量非常重要,但过多的高频噪声可能会导致图像看起来粗糙或模糊。

  7. 压缩:在图像压缩中,高频信息通常被压缩得更多,因为人眼对高频细节的敏感度较低。

  8. 计算机视觉:在计算机视觉中,高频信息对于物体识别、场景理解等任务至关重要。

那低频信息又是什么?

图像中的低频信息指的是图像中变化较慢或较为平滑的区域,通常包括大面积的均匀颜色或渐变色。低频信息在图像处理和分析中扮演着重要角色,以下是一些关于低频信息的关键点:

  1. 定义:低频信息是指图像中变化不大或相对平滑的区域,与高频信息(快速变化的区域)相对。

  2. 重要性:低频信息有助于理解图像的整体结构和布局,对于图像的平滑度和背景有重要影响。

  3. 应用

    • 图像平滑:通过减少或去除高频信息来平滑图像,常用于去除噪声。
    • 图像缩放:在图像缩放过程中,低频信息有助于保持图像的整体结构。
  4. 影响因素

    • 模糊:图像模糊可能由低频信息的增强和高频信息的减少造成。
    • 光照变化:光照的不均匀性可能在图像中表现为低频信息的变化。
  5. 处理技术

    • 低通滤波器:用于提取图像中的低频信息,如高斯滤波器、平均滤波器等。
    • 频域分析:在频域中,低频信息可以通过对图像进行傅里叶变换来分析。
  6. 图像质量:低频信息有助于保持图像的整体视觉效果,但过度强调低频信息可能会导致图像细节的丢失。

  7. 压缩:在图像压缩中,低频信息通常被保留得更多,因为人眼对低频信息的敏感度较高。

  8. 计算机视觉:在计算机视觉中,低频信息有助于场景的总体理解,但可能不足以进行精确的物体识别。

  9. 图像分割:在图像分割任务中,低频信息有助于识别图像中的大块区域。

  10. 艺术效果:在艺术和设计中,低频信息的调整可以创造出不同的视觉效果,如梦幻效果或抽象画。

不严谨的来理解的话,高频信息就是图像中的各种文字、边缘等变化强烈的部分,而低频信息就是光影等变化不强烈的部分。

拿这个啤酒瓶为例:

高频信息提取后就是这样:

低频信息提取后(高斯模糊10个像素)

 那么高频信息和低频信息分别是如何提取的呢?

先说低频信息,这个很简单,直接通过ps中的高斯模糊,模糊一定的数值就行,如果是人像磨皮,可能5个像素的高斯模糊就差不多了,而如果是保留商品中的文字之类的,可以考虑高一些,比如说20~50像素(当然,这个跟你图像本身尺寸也有关系);

然后是高频信息,这个需要用到ps中的图像-应用图像,来进行计算;

用原始图像,减去 低频图像,同时设定缩放为2,补偿为128,那么就可以得到这张模糊的低频图像对应的高频图像,也就是图像的细节部分。

那么这里的2和128到底是什么意思呢?

其实查一下资料就可以知道:

就是图像的rgb值经过这个计算进行得到的。

带入刚才的2和128,也就是:(B-A)/2-128=result

这个操作,等价于:

(原图像 先反色 * 50% 透明度 + 原图像 高斯模糊 *50%透明度)再反色

注意,这里的叠加模式add,跟ps中的add并不是同一个概念,这里的add仅仅是图像透明度叠上去,ps中的add是相加模式,算法非常不同;

好,到这里仅仅是把高频噪声提取了出来,如何还原图像呢?

对,线性光叠加就好了。

ps里边实现还是很简单的,毕竟东西都很齐全。

但是问题是,comfyui中没有线性光。

那么线性光的计算公式是个啥?

根据百度百科:公式:基色+2混合色-255=结果色。

不过根据实测,这个公式并不是很完整,从ps中试验下来应该是这样的公式:

result= 原色+ 2*混合色 - 256,同时如果结果超过255,那么结果就是255,如果结果小于0,结果就是0

大家可以在ps中自行尝试。

用A代表原色,B代表混合色,那就是 result=A+2B-256,同时如果结果超过255,那么结果就是255,如果结果小于0,结果就是0。

那么,如果comfyui中没有现成的线性光,有没有别的方法可以实现这个类似的公式呢?

有人想到了。

高频图像,也就是B,用66.6%(2/3)的透明度,叠加在高斯模糊后的图像A上,然后通过色阶调整,将结果图像再映射到0~255的图像空间上。

这里涉及到一点色阶的计算公式:

引用:PS 色阶调整之算法公式原理详解及 Python 实现(色阶原理)_photoshop色阶开发-CSDN博客

那么前边的描述:高频图像,也就是B,用66.6%(2/3)的透明度,叠加在高斯模糊后的图像A上,然后通过色阶调整,将结果图像再映射到0~255的图像空间上。

也就是:[(2/3*B+1/3*A-1/3*255)/(1/3*255)]*255=result

同时:

稍微计算下,完全等价于线性光的公式:

用A代表原色,B代表混合色,那就是 result=A+2B-256,同时如果结果超过255,那么结果就是255,如果结果小于0,结果就是0。

emm,发现这个公式的人的确很强😄

如果这些内容懒得看,只需要知道:

左边的箭头其实就是2/3,所以用66%或者67%都可以,右边的色阶是255*1/3,1,255*2/3,就可以了。

没有什么玄学。

在ps中试验下,也可以看到经过前边的操作,色阶被压缩在中间1/3处,反向映射回去就跟原图看起来没有太大差别了。

 如果大家觉得有帮助,还请点赞收藏哦。

这里是聚梦小课堂~

✨写在最后

如果对comfyui还不熟悉的话,最近面向ComfyUI的新手,开了一门图文课程,现在已经更新完成了,如果大家在学习过程中遇到什么问题,也可以直接文章下留言,会持续更新相关答疑内容哈。欢迎订阅哦~

https://blog.csdn.net/jumengxiaoketang/category_12683612.html

​​

感谢大家的支持~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1915775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加速你的下载,IDM神器不可错过!快如闪电,稳如老狗

嗨,各位小伙伴!👋👋👋 今天我要安利一个让你的下载体验起飞的神奇工具——Internet Download Manager(简称IDM)🛫。想象一下网速慢得像蜗牛爬的场景,是不是让人抓狂&…

3个方法教你如果快速绕过Excel工作表保护密码

在日常生活中,我们可能会遇到一些特殊情况,比如不小心忘记了Excel文件中设置的打开密码。别担心!这里为您带来一份详细的Excel文件密码移除教程,助您轻松绕过Excel工作表保护。 方法一:使用备份文件 如果您有文件的备…

24暑假计划

暑假计划: 1.从明天起开始将C语言的部分补充完整,这部分的预计在7月24日前完成 2.由于之前的文章内容冗余,接下来进行C语言数据结构的重新编写和后面内容的补充预计8月10号前完成 3.后续开始C的初级学习

【热梗案例】知识点阶段性综合汇总

文章目录 渲染对象、实现统计功能实现删除功能设置发布按钮实现发布按钮的提交功能 直接用CSS的模板&#xff0c;模板代码如下&#xff1a; <template><view class"title">近期热梗</view><view class"out"> <view class&qu…

SuperCLUE最新测评发布,360智脑大模型稳居大模型第一梯队

7月9日&#xff0c;国内权威大模型评测机构SuperCLUE发布《中文大模型基准测评2024上半年报告》&#xff0c;360智脑大模型&#xff08;360gpt2-pro&#xff09;在SuperCLUE基准6月测评中&#xff0c;取得总分72分&#xff0c;超过GPT-3.5-Turbo-0125&#xff0c;位列国内大模型…

马蹄集 oj赛(双周赛7.3-7.14)

目录 围栏木桩 大厨小码哥 最长子段和 旅费 散步 抽奖 海龟 线段树 纸带 异或和 上楼梯 上楼梯2 围栏木桩 难度:黄金时间限制:1秒四占用内存:128 M 某农场有一个由按编号排列的 ,,根木桩构成的首尾不相连的围栏。现要在这个围栏中选取一些太桩&#xff0c;按照原有…

PHP 安装Memcached 扩展 PHP使用Memcache

memcache扩展下载 访问官网&#xff1a;https://pecl.php.net/package/memcache&#xff0c;下载合适的memcache版本的安装包&#xff0c;注意要与php版本相匹配。 1、查看运行环境php版本,可以运行以下代码 <?php phpinfo(); ?>2、查看版本信息以及是否支持多线程…

YOLOv5改进 | 注意力机制| 对密集和小目标友好的EVAblock【完整代码 + 小白轻松上手】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…

redis批量删除keys,用lua脚本。

文章目录 现象解决方法 现象 系统报错&#xff1a; misconf redis is configured to save ....后查看机器内存。 是内存满了&#xff0c;需要删除其中的key 解决方法 (1) 编写一个脚本&#xff0c;放在redis-cli.exe同一个目录 (2) 脚本内容如下&#xff1a; -- 使用Lua脚…

0MFC基于对话框模式——前置基础

文章目录 系统记得调成窗口![请添加图片描述](https://i-blog.csdnimg.cn/direct/e77eba56b14b42c8b86f210c72351684.png)基于对话框各部分代表![请添加图片描述](https://i-blog.csdnimg.cn/direct/673d07e6d17f4e528dd01ae8ebfa5b64.png)按钮实现函数方式![请添加图片描述](h…

【背就有效】软考中级信息系统监理师核心知识点汇总!

宝子们&#xff01;上半年软考已经告一段落了&#xff0c;准备下半年考信息系统监理师的小伙伴可以开始准备了。这里给大家整理了信息系统监理师核心知识点汇总&#xff0c;涵盖全书90%的重点&#xff0c;先把这个存下&#xff01;再慢慢看书&#xff0c;边看书边背这个&#x…

【利用GroundingDINO裁剪分类任务的数据集】及文本提示检测图像任意目标(Grounding DINO) 的使用

文章目录 背景1.Grounding DINO安装2.裁剪指定目标的脚本 背景 在处理公开数据集ImageNet-21k的时候发现里面有很多的数据有问题&#xff0c;比如&#xff0c;数据目标有很多背景&#xff0c;且部分类别有其他种类的图片。针对数据目标有很多背景&#xff0c;公开数据集ImageNe…

TongRDS 2214 docker版指引(by lqw )

文章目录 前言准备工作中心节点服务节点哨兵节点 前言 部署docker版本&#xff0c;建议先参考TongRDS2214手动部署版指引&#xff08;by lqwsy&#xff09; 在本地手动部署了一套适合业务场景的rds 服务后&#xff0c;再通过dockerfile 打镜像。 准备工作 1.准备对应的安装包…

新书速览|HTML5+CSS3 Web前端开发与实例教程:微课视频版

《HTML5CSS3 Web前端开发与实例教程&#xff1a;微课视频版》 本书内容 《HTML5CSS3 Web前端开发与实例教程&#xff1a;微课视频版》秉承“思政引领&#xff0c;立德树人”的教育理念&#xff0c;自然融入多维度、深层次的思政元素&#xff0c;全面对标企业和行业需求&#x…

【Windows】实现窗口子类化(基于远程线程注入)

目录 前言 原理解释 完整项目 相关文献 文章出处链接&#xff1a;[https://blog.csdn.net/qq_59075481/article/details/140334106] 前言 众所周知&#xff0c;DLL 注入有多种用途&#xff0c;如热修补、日志记录、子类化等。本文重点介绍使用 DLL 注入对窗口进行子类化。…

技术文件国产化准备

技术文档的本地化涉及调整内容以满足特定目标市场的文化、语言和技术要求。这一过程超越了简单的翻译&#xff0c;确保文件在文化上适合预期受众&#xff0c;在技术上准确无误。适当的准备对于成功的本地化至关重要&#xff0c;以下步骤概述了一种全面的方法。 分析目标受众 …

022-GeoGebra中级篇-几何对象之直线与坐标轴

本文主要介绍一下GeoGebra中直线的常见输入方式&#xff0c;比如工具栏输入、表达式输入、函数输入&#xff0c;最后再把坐标轴的调用简单介绍一下。内容比起传统的教学更偏向于实战一些&#xff0c;若感兴趣欢迎继续阅读。 目录 一、直线1. 关于工具栏绘制&#xff08;1&#…

Dify中的工具

Dify中的工具分为内置工具&#xff08;硬编码&#xff09;和第三方工具&#xff08;OpenAPI Swagger/ChatGPT Plugin&#xff09;。工具可被Workflow&#xff08;工作流&#xff09;和Agent使用&#xff0c;当然Workflow也可被发布为工具&#xff0c;这样Workflow&#xff08;工…

macOS系统下载navicat安装包

链接: https://pan.baidu.com/s/1SqTIXNL-B8ZMJxIBu1DfIw?pwdc1z8 提取码: c1z8 安装后效果

【Android组件】封装加载弹框

&#x1f4d6;封装加载弹框 ✅1. 构造LoadingDialog✅2. 调用LoadingDialog 效果&#xff1a; ✅1. 构造LoadingDialog 构造LoadingDialog类涉及到设计模式中的建造者模式&#xff0c;进行链式调用&#xff0c;注重的是构建的过程&#xff0c;设置需要的属性。 步骤一&#x…