首页
学习
活动
专区
圈层
工具
发布

使用 OpenCV 替换图像的背景

业务背景 在我们的某项业务中,需要通过自研的智能硬件“自动化”地拍摄一组组手机的照片,这些照片有时候因为光照的因素需要考虑将背景的颜色整体替换掉,然后再呈现给 C 端用户。这时就有背景替换的需求了。...大致的步骤如下: 将二维图像数据线性化 使用 K-means 聚类算法分离出图像的背景色 将背景与手机二值化 使用形态学的腐蚀,高斯模糊算法将图像与背景交汇处高斯模糊化 替换背景色以及对交汇处进行融合处理...背景替换的效果.png 方案二: 方案一的算法并不是对所有手机都有效,对于一些浅色的、跟背景颜色相近的手机,该算法会比较无能为力。 ?...相近颜色替换背景的效果.png 于是换一个思路: 使用 USM 锐化算法对图像增强 再用纯白色的图片作为背景图,和锐化之后的图片进行图像融合。 图像锐化是使图像边缘更加清晰的一种图像处理方法。...USM(Unsharpen Mask) 锐化的算法就是对原图像先做一个高斯模糊,然后用原来的图像减去一个系数乘以高斯模糊之后的图像,然后再把值 Scale 到0~255的 RGB 素值范围之内。

4.2K30

【杂谈】那些底层的图像处理问题中,GAN能有什么作为?

作者&编辑 | 言有三 1 GAN与图像降噪 图像在产生和传输过程中都会受到噪声的干扰,因此图像降噪是一个非常基础的问题,生成式模型GAN在捕捉噪声的分布上有天然的优势。...)从噪声图像中进行噪声建模和采样,和干净的无噪声图像一起合成成对的训练数据,最后用Dncnn框架进行训练。...由于图像获取过程中设备的晃动,对焦不准或者目标的移动速度过快,经常会造成图像模糊,去模糊也是一个很常见的基础图像问题。...下图统计了一些自然的图像块,基于MSE生成的图像块和基于GAN生成的图像块的对比,也可以发现MSE的结果更加平滑。 ?...图像融合是一个非常底层的任务,它可以实现图像内容的无缝编辑替换,创作新的作品,GAN必会在其中大有作为。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    移除和替换任何内容:AI 驱动的图像修复工具 | 开源日报 No.204

    IOPainthttps://github.com/Sanster/IOPaint Stars: 15.1k License: Apache-2.0 IOPaint 是一款由 SOTA AI 模型驱动的图像修复工具...该项目解决了从图片中移除任何不需要的对象、瑕疵或人物,以及擦除和替换图片上任何内容(由稳定扩散技术支持)的问题。...完全免费且开源 支持 CPU、GPU 和 Apple Silicon 提供方便的 WebUI 用于编辑图像 支持各种 AI 模型,包括擦除模型和稳定扩散模型等 可通过命令行进行批处理操作 提供多种插件,...如准确快速交互式对象分割、去除图像背景或生成前景对象蒙版等 cloudflare/pingorahttps://github.com/cloudflare/pingora Stars: 12.3k License...使用 Pingora 的原因 安全是首要考虑因素:Pingora 是 C/C++ 编写服务的更安全内存替代方案。

    1.1K10

    基于yolov11使用图像去雾网络UnfogNet替换backbone的python源码+训练源码

    【UnfogNet介绍】 UnfogNet是一种专为图像去雾设计的深度学习网络,旨在通过先进的算法恢复雾霾天气下图像的清晰度,提升视觉效果与后续计算机视觉任务的性能。...其核心架构融合了编码器-解码器结构与注意力机制,通过多尺度特征提取与融合,有效去除图像中的雾霾干扰。...此外,UnfogNet采用端到端训练方式,直接从有雾图像生成清晰图像,避免了传统方法中传输矩阵与大气光参数的独立估计步骤,简化了流程并提升了效率。...该网络在雾霾图像处理领域展现出显著优势,能够显著提升图像的峰值信噪比(PSNR)和结构相似性指数(SSIM),同时改善主观视觉质量。...在实际应用中,UnfogNet已广泛应用于自动驾驶、安防监控、航空遥感等领域,为这些场景提供了更可靠的图像处理解决方案。

    18800

    dotnet OpenXML 从文档生成创建文档的代码的库

    本文和大家介绍 Serialize.OpenXml.CodeGen 这个支持从某个文档生成用于创建出这个文档的 C# 或 VB 代码的库。...作用就是可以让小伙伴在拿到一份模版文件之后,可以通过 Serialize.OpenXml.CodeGen 生成能创建出这份文档的 C# 或 VB 的代码,用于在这份代码上面更改功能,做到创建定制 Docx...或 PPTX 或 Xlsx 文档的功能 这是一个完全开源的库,代码放在 https://github.com/rmboggs/Serialize.OpenXml.CodeGen 欢迎小伙伴访问 这个库的功能就是从...,因此可以通过修改 Sample1.cs 代码定制写入的内容 例如我给的 Sample1.xlsx 只是一个模版,里面有很多内容可以替换,此时就可以修改 Sample1.cs 的代码,将可以替换的逻辑替换为自己的逻辑...本文代码放在github欢迎小伙伴访问 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-OpenXML-%E4%BB

    1.2K20

    dotnet OpenXML 解析 PPT 图表 面积图入门

    本文告诉大家如何使用 OpenXML 解析 PPT 的图表,以面积图为入门例子告诉大家 OpenXML 的存储 在 PPT 里面,有强大的图表功能,可以联动 Excel 展示数据。...,和各个系列的系列名称和系列数据 下面将告诉大家如何根据 OpenXML SDK 提供的方法读取到图表的内容 读取图表 在开始之前,还请大家先了解 OpenXml 读取 PPT 的基础。...类别轴上的数据是面积图横坐标轴显示内容,每个系列都有,这是重复的数据,在 PPT 里,只取第一个系列的数据 数据系列里的横坐标轴的类别坐标轴数据,在 OpenXML 里面,是 DocumentFormat.OpenXml.Drawing.Charts.CategoryAxisData...OpenXML 里面有多个不同的存储类型。...不能访问,请替换为 github 的源 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git

    1.4K30

    dotnet OpenXML 获取 Excel 表格当前激活选择的工作表

    本文告诉大家如何读取 Excel 里面的信息拿到当前激活选择的工作表 在开始之前,期望大家了解如何使用 OpenXML 读取 Excel 文件,如果对此还不了解,请看 C# dotnet WPF 使用...OpenXml 解析 Excel 文件 在 OpenXML 里面,可以通过 ActiveTab 属性拿到当前激活的工作表的序号。...通过 OpenXML SDK 的定义,可以了解到 ActiveTab 放在 WorkbookView 里面,新版本的 SDK 加了可空,可以方便让咱了解某些属性是否一定是必须的。...不能访问,请替换为 github 的源 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git...获取代码之后,进入 Xlsx 文件夹 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 ----

    1.6K10

    dotnet OpenXml SDK 形状填充渐变色的主题色

    在形状填充里面使用的渐变色是可以一部分属性放在主题里面,主要找到主题里面的画刷,替换掉形状自己定义的内容,才是形状的画刷 我拿到一份有趣的课件,从这份课件的表现上,可以找到在一个 Shape 元素里面的...,也就是没有 a:gs 定义颜色 这个问题是 OpenXML a:gradFill without a:gsLst 渐变色里面没有 GradientStopList 的值 而在这个形状一般都可以看到 ShapeStyle... 而这个样式要的属性是 idx 属性,表示属于主题的哪个样式 那么在 OpenXML SDK 里面如何获取主题,如果是在 Slide 页面的元素可以通过下面的代码获取主题...在 OpenXML SDK 里面没有给填充颜色一个基类,这部分的设计不是很好 在 PPT 文档里面对应的是 ppt\theme\themex.xml 文件里面的 a:fillStyleLst 的值 的 请看下图就知道如何获取 大部分的存在继承关系和联系的都在 OpenXML SDK 里面写出来关系了,只有这些比较边角的功能需要自己实现 而渐变色的各个属性的行为请看

    74410

    dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 的属性作用

    本文收集元素属性 cNvPr Non-Visual Drawing Properties 的属性的作用 本文的 Non-Visual Drawing Properties 也就是在 OpenXML 文档里面的...另一个在 PPT 可见的是在动画的窗格 在 OpenXML SDK 的读取方法如下 var name = nonVisualDrawingProperties.Name; 测试课件请点击 元素名....pptx 下载 title 表示当前元素的标题,标题和下面的 descr 描述的作用是在元素不能显示的时候,可以用来替换的文本。...也用来给辅助模块使用,如屏幕阅读器 官方的说法是 标题和说明提供表格、图示和其他对象中包含的信息的可选、基于文本的表示法 在 OpenXML SDK 的读取方法如下 var title = nonVisualDrawingProperties.Title...也可以用在不支持当前元素的时候显示的文本 在 OpenXML SDK 的读取方法如下 var description = nonVisualDrawingProperties.Description

    1.2K30

    dotnet OpenXML 文本删除线解析方法

    本文来告诉大家如何解析读取在 OpenXML 里面存放的文本删除线,本文使用 PowerPoint 作为例子来告诉大家如何读取然后在 WPF 应用里面显示 在开始之前,期望大家已了解如何在 dotnet...应用里面读取 PPT 文件,如果还不了解读取方法,请参阅 C# dotnet 使用 OpenXml 解析 PPT 文件 期望在阅读本文之前,先阅读 dotnet OpenXML 简单聊聊 PPT 文本解析...以下是本文效果 在 OpenXML 文档,将文本的删除线放在了文本的 Run 属性里面,大概内容如下 的样式也是特别多的 如删除线的 TextStrikeValues 的枚举,在 ECMA 376 的第 20.1.10.78 章可以了解到有单线条的删除线和双线条的删除线,在 OpenXML...以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源 git remote remove origin git remote add origin https://

    1.3K10

    dotnet OpenXML 形状的 Outline 的 LineWidth 线条轮廓粗细宽度的行为

    本文来和大家聊聊 OpenXML 里面的给 PPT 用的形状里面的线条宽度的定义,以及在 PowerPoint 上的行为 本文属于 OpenXML 系列博客,前后文请参阅 Office 使用 OpenXML...SDK 解析文档博客目录 在 OpenXML 里面,定义形状的轮廓是通过 a:ln 也就是 OpenXML SDK 里面定义的 DocumentFormat.OpenXml.Drawing.Outline...,或者说形状的对应 WPF 的 Stroke Thickness 的值的设置 此值是 EMU 单位的,意味着 1 像素对应 9525 的 EMU 的值 如以下的简单形状的 OpenXML 文档内容...gitee 的源,如果 gitee 不能访问,请替换为 github 的源 git remote remove origin git remote add origin https://github.com...再从 OpenXML SDK 的文档也可以读取相同的描述,请看 Outline 类 (DocumentFormat.OpenXml.Drawing) 也就是说其实 Line Width 是可以不写的,如果不写的话

    83130

    dotnet OpenXML 文本 BodyProperties 的 FontScale 与文本字号缩放

    本文来告诉大家,在 OpenXML 的 BodyProperties 的 NormalAutoFit 的 FontScale 属性缩放文本框的文本字号的方法 通过 ECMA 376 文档可以了解到 BodyProperties...dotnet OpenXML 文本 BodyProperties 的属性作用 通过 ECMA 376 的 21.1.2.1.3 章可以了解到使用 NormalAutoFit 的 FontScale 属性是按照百分比缩放文本框...开始之前,先使用 C# dotnet 使用 OpenXml 解析 PPT 文件 的方法读取测试的文档。...= null); 如果文档里的 OpenXML 内容没有存在 NormalAutoFit 或者 FontScale 属性,那就是默认不做文本字号缩放。...以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源 git remote remove origin git remote add origin https://

    93830

    C# dotnet 使用 OpenXml 关闭时不自动保存文档方法

    默认在使用 OpenXML SDK 读写 Office 文件,如 PPT 或 Word 或 Excel 文件时,在关闭时调用 Dispose 将会自动将更改部分写入到文件。...本文告诉大家如何让 OpenXML SDK 不写入只是释放资源 如使用以下代码传入 .docs 文件进行解析 using var wordprocessingDocument =...OpenXML 格式文件,如 docx 和 pptx 和 xlsx 等文件都可以设置在关闭时不自动保存 本文所有代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹...,请替换为 github 的源 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git...JeawufawelluChunerlecachear 文件夹 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/C-dotnet-%E4%BD%BF%E7%94%A8-OpenXml

    88330

    dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格的信息

    在 Office 中,可以在 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式。...但是新版本的 pptx 和 xlsx 等都是 OpenXML 格式 嵌入到 PPT 的 oleObject1.bin 也就是 OLE 文件,对应上古的格式。...本文将在 OLE 里面存放 xlsx 格式的嵌入方式称为 xls+ 格式 先来开始从 OpenXML 文档读取到 OLE 嵌入文件的逻辑 和通用的 PPTX 文件解析相同的逻辑,先读取文件,我的测试文件在首页就嵌入了表格...Stream 对象,但是因为在 OpenXML 的 Part 取出的 Stream 是不可随机访问的(为了解决 N 多的坑,在 System.IO.Packaging 限制)因此以下代码是不可用的...gitee 的源,如果 gitee 不能访问,请替换为 github 的源 git remote remove origin git remote add origin https://github.com

    1.9K40
    领券