图像修复简介

article/2025/10/15 16:52:58
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达推荐阅读
42个pycharm使用技巧,瞬间从黑铁变王者Google C++项目编程风格指南 (中文版) 分享

在实际应用中,图像经常被噪声腐蚀。这些噪音是镜头上的灰尘或水滴,或者是旧照片的刮擦,或者是人为绘制的图像,或者图像的一部分已损坏。文献中有两种主要的图像恢复方法:

  • 基于PDE的方法的目的是将已知区域中的线或边扩展到用户指定的区域。这些区域充分注意结构的传播,但是由于其情况下的模糊效果,因此不适合处理大区域。

  • 基于示例的方法使用纹理合成方法来合成用户指定区域中的像素。

本文主要研究小型破损图像修复技术和大型破损图像完成技术及其相关应用。

基于补丁的方法

I是 在Ω上定义的输入图像,O是在Ω上的遮挡区域。我们注意到D =Ω∖ O未被遮挡的区域。我在D上已知的图像,但在O上未知

我们在这里考虑补丁的奇数大小:

我们首先定义一个与补丁size的大小相关的邻域:

我们将补丁Ψ_p定义为一个以像素p为中心的补丁,作为围绕p的补丁邻域中像素值的向量:

该定义基本上是围绕像素p的正方形

我们注意到d〜在Ω其(2A + 1)设定的未被遮挡像素×(2A + 1)邻域也未被遮挡。Wexler等。[1]提出了一种通用的视频修复算法,该算法是双向相似性方法的前身,并且不需要对象检测或分割。该方法基本上使形式的连贯项最大化。

其中φ是在Ω像素之间的对应关系映射,必须满足X + φX)∈ d〜对于所有X ∈Ω。这种成本函数是非凸的,我们使用的启发式方法,以尽量减少或者它üφ

初始化之后,使用以下两个步骤优化此功能:

  • 匹配鉴于ü,找到d〜每个补丁的近邻Px的已在补绘域像素Ø,也就是地图φX),∀ X ∈Ω∖D~。

  • 重建鉴于变速映射φ,属性的新值ÙX),以每个像素X ∈ O.

重复这些步骤,以收敛到令人满意的解决方案。该过程可被视为以前的成本的最小化交替Ë在变速图φ和图像内容ü

稀疏表示

拉索算法用于通过以下公式估算给定字典的信号的系数β:

|| β|| _1引入拟合系数向量的稀疏性,参数λ控制重构误差与稀疏性之间的权衡。更有趣的是,当信号的某些分量被破坏时,这意味着模型被修改为

其中,e表示错误,当且仅当y_i损坏时,e_i为非零。

这可以用来帮助我们发现中断的信号。但是在此应用中,用户已经标记了需要校正的区域,因此我们可以直接确定像素是否已损坏。

我们将中断信号的索引集标记为,表示从y中删除索引为I的剩余向量,和是相应的字典矩阵,通过删除I中所有索引的剩余列获得。现在,稀疏系数β可以通过以下公式计算:

然后,我们使用计算出的w来修复损坏的信号:

图像复原算法

给定输入图像,用户选择要删除和填充的目标区域。然后通常将缺失的部分视为目标区域。

我们用Ω表示目标区域,用Φ表示源区域,用δΩ表示目标区域的边缘。

[2]生成从孔的边界到内部的图像。在每次迭代中,他们计算边缘δΩ上每个像素p的优先级P(p),然后选择优先级最高的像素作为p_m。

使用一个k维向量Ψ_{P_m}来表示n×n个补丁中心p_m。

根据前面提到的稀疏表示,将Ψ_{P_m}设为y,这是属于目标区域的需要还原的信号。我们可以通过以下两个公式计算稀疏表示:

其中x是稀疏表示的字典。通过稀疏表示来完成信号,并在当前不确定完成后更新边界,然后进行下一个迭代。

结论

本期涵盖了图像处理的基本,低级操作和工具,这些对于理解计算机视觉的大多数常用方法和工具都是必需的。

参考文献

  • Wexler, Y., Shechtman, E., & Irani, M. (2004, June). Space-time video completion. In Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on (Vol. 1, pp. I-120). IEEE.

  • Shen, B., Hu, W., Zhang, Y., & Zhang, YJ (2009). Image inpainting via sparse representation. In ICASSP, IEEE International Conference on Acoustics, Speech and Signal Processing-Proceedings (pp. 697–700 ). https://doi.org/10.1109/ICASSP.2009.4959679.

  • Newman, Richard (2011). Conservation and care of museum collections(1st ed.). MFA publications. p. 29. ISBN 978–0–87846–729–7.

  • Darrow, E.J. “Pietro Edwards and the restoration of the public pictures of Venice, 1778–1819: necessity introduced these arts”. Research Works Archive. University of Washington. Retrieved 29 March 2020.

  • National Gallery,(2019), Helmut Ruhemann Papers: 1939–1979, https://www.nationalgallery.org.uk/archive/record/NG29. Retrieved November 2. 2019.

  • Jessell, Bettina, (1977), Helmut Ruhemann’s Inpainting Techniques, Journal of the American Institute for Conservation, Volume 17, Number 1, Article 1 (pp. 01 to 08), http://cool.conservation-us.org/jaic/articles/jaic17-01-001.html, Retrieved November 2, 2019.

  • Garland, Patricia, 2011, Chapter3, Tradition of retouching Practices in America, pp 34–52, in Painting Conservation Catalog, Volume III Inpainting,The Paintings Specialty Group of the American Institute for Conservation, https://www.culturalheritage.org/docs/default-source/resource-guides/painting-conservation-catalog-volume-3-(inpainting).pdf?sfvrsn=6, Retrieved November 2, 2019.

  • Idelson, Antonia Iaccarino; Severini, Leonardo (18 June 2018). “Inpainting”. The Encyclopedia of Archaeological Sciences: 1–4. doi:10.1002/9781119188230.saseas0330. ISBN 9780470674611.

  • Bertalmio, Marcelo; Sapiro, Guillermo. “Image Inpainting” (PDF). University of Minnesota. University of Minnesota. Retrieved 29 March 2020.

  • “Inpainting | Museu Nacional d’Art de Catalunya”. www.museunacional.cat. Retrieved 29 March 2020.

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目31讲

在「小白学视觉」公众号后台回复:Python视觉实战项目31讲即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

下载4:leetcode算法开源书

在「小白学视觉」公众号后台回复:leetcode即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


http://chatgpt.dhexx.cn/article/d6LBb8W6.shtml

相关文章

Halcon图像修复

1.之前研究OpenCV的图像修复时,知道Opencv提供的inpaint API能够实现这个效果。 void inpaint( InputArray src, 原图 InputArray inpaintMask, 二进制掩模,指示要修复的像素 OutputArray dst, 目标图像 double inpaintRadius, 像素周围的邻域补绘。…

图像修复

转自:https://blog.csdn.net/moxibingdao/article/details/107075598 本文继 去雨去雾去模糊篇 和 图像增强与图像恢复篇 之后,继续盘点CVPR 2020 中低层图像处理技术,本篇聚焦于图像修复(Image Inpainting)。 示例如…

CVPR 2020 论文大盘点-图像修复Inpainting篇

转自:https://mp.weixin.qq.com/s?__bizMzIwMTE1NjQxMQ&mid2247519592&idx2&sn3a0598c9f52e47929678a572ea451d98&chksm96f0ff3ca187762a107b4b9194e862b757d3d943ec399b35cbb7576cd92ee55cc648d7121ac3&scene21#wechat_redirect 本文继 去雨…

图像修复介绍

图像修复是一种利用缺损图像中已知部分的信息预测缺损区域的内容,允许使用替代内容取填充目标区域的技术。其最终目的是保证修复后的图像整体结构连贯统一,修复区域边缘处过渡自然,修复内容细节丰富合理,最好能够使观察者无法分辨…

【OpenCV】- 图像修复

说明:图像修复可以解决类似噪声或者是镜头上的灰尘或水滴或者旧照片上面的划痕等。 文章目录 1、实现图像修补:inpaint()函数2、opencv之鼠标响应函数3、示例程序 1、实现图像修补:inpaint()函数 说明:图像修补技术由inpaint()函数…

图像修复(Image Restoration)算法数据集详细介绍

目录 人脸数据集 1.Helen Face 2.CelebA (Celebrity Attribute) 3.CelebA-HQ 4.FFHQ(Flickr-Faces-HQ) 场景数据集 1.MS COCO (Common Objects in Context) 2.ImageNet 3.Places2 街景数据集 1.Paris StreetView 2.Cityscapes 纹理数据集 …

图像修复 : ICCV 2021 基于条件纹理和结构并行生成的图像修复【翻译】

声明:精简翻译,未完全校对 积压的存稿、好久没更文了、先发一篇这个代码很不错、推荐有兴趣的同学学习博主也写了对应的测评文章待发、点赞越多、发的越快如有同学,学有余力、可以转载这个文章( 附原文地址即可 )、校对…

Linux udhcpc/udhcpd 移植

参考文档: http://blog.chinaunix.net/uid-14704264-id-4272838.html https://www.cnblogs.com/chenfulin5/p/9481249.html 若系统busybox 自带了 udhcpc 和 udhcpd 工具 udhcpc 作为客户端工具,用于动态获取IP; udhcpd 作为服务器工具&…

udhcpc6的default.script

udhcpc6使用中遇到的问题 和udhcpc一样,udhcpc6是busybox中的一个工具,主要用来提供dhcpv6客户端服务。 在使用过程中遇到了一个问题,直接执行udhcpc6 -i eth0,可以看到打印信息中显示正在发送discover包,如果本地有…

UNIX source code-DHCP

文章目录 DHCP基础知识什么是DHCP为什么要使用DHCP IP地址分配机制工作原理报文类型基本步骤中继重用IP租赁期限 代码解析文件作用udhcpd.c结构体代码逻辑(流程) udhcpc.c结构体代码逻辑(流程) file.c结构体(read_conf…

udhcpc 移植和使用

问题描述: busybox udhcpc获取IP,但没有自动将获取到的ip设置到网卡上,并且没有自动设置网关,路由表等。必须手动设置才能连接外网。 解决方案: udhcpc可以通过-s参数指定运行脚本,当获取到ip地址后&…

初始化ArrayList、List的两种方法

说明&#xff1a; 个人偏向第二种方法&#xff0c;适合没有服务器数据的情况下&#xff0c;做个简单的list来开发 方式一&#xff1a; ArrayList<String> list new ArrayList<String>();String str01 String("str01");String str02 String("str0…

Java 中初始化 List 集合的 6 种方式!

List 是 Java 开发中经常会使用的集合&#xff0c;你们知道有哪些方式可以初始化一个 List 吗&#xff1f;这其中不缺乏一些坑&#xff0c;今天栈长我给大家一一普及一下。 1、常规方式 List<String> languages new ArrayList<>(); languages.add("Java&qu…

java创建List时候 初始化赋值

在这之前 可能有的读者&#xff0c; 只知道数组初始化 时候的赋值。 String[] strings new String[]{"one","two","three"};当创建list时候&#xff0c;也许 你还会写过以下代码 正确的写法 List<String> list new ArrayList<>(…

初始化列表

前言 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _month;int _day; }; 虽然上述构造函数调…

Java 初始化 List 的几种方法

最常见的初始化 List 方法为&#xff1a; List<String> languages new ArrayList<>(); languages.add("Java"); languages.add("PHP"); languages.add("Python"); System.out.println(languages);但是实际上&#xff0c;我们并不会…

LIST集合初始化及常见方法

目录 1.ArrayList集合的初始化&#xff1a; 2.常用的List集合方法&#xff1a; 1.添加元素方法 2.查看&#xff08;遍历元素&#xff09;&#xff1a; 3.修改元素&#xff1a; 4.删除元素&#xff1a; 5.其他的常见方法&#xff1a; 1.ArrayList集合的初始化&#xff1a;…

微信小程序上传图片怎么限制大小

最近有一个微信小程序的项目&#xff0c;要求是上传多张图片&#xff0c;数量不能超过3张 &#xff0c;而且在php里因为上传图片被设置了只能上传2M&#xff0c;导致上传不成功&#xff0c;所以我在前端 设置一个函数&#xff0c;用了微信api(wx.chooseImage)获取图片&#xf…

微信小程序 import文件大小限制

微信小程序 import 引入外部文件 最大限制 超过 500k 时小程序会报错 当 import 引入的文件小于 500k 20200317补充: 后来有尝试了一下 echart ,发现引入的文件也大于500k,但是并没有出现报错, 我十分怀疑是json 的长度过长导致的, 如果有人知道是什么原因,希望不吝赐教.

【微信小程序】解决代码上传超过大小限制

问题描述 代码上传时失败&#xff0c;原因是大小超过限制 解决办法 一、图片等静态资源占用大&#xff0c;导致大小超限制 方法1&#xff1a;使用云开发提供的储存功能【推荐】 注意&#xff1a;要开通云开发功能&#xff0c;其次要在app.js中调用wx.cloud.init方法使用云开…