【OpenCV-Python】教程:8-2 图像修复 Image Inpainting
创始人
2024-05-01 21:08:16
0

OpenCV Python 图像修复

【目标】

  • 去除小噪声和笔画等;

【理论】

大多数人家里都会有一些旧照片,上面有一些黑点,一些笔画等。你想过把它修复回来吗?我们不能简单地在油漆工具中删除它们,因为它只会用白色结构取代黑色结构,这是没有用的。在这些情况下,使用一种称为图像修补的技术。基本的想法很简单:用邻近的像素替换那些不好的标记,这样它看起来就像邻近的像素。看看下面这张图片(来自维基百科):

在这里插入图片描述

为此设计了几种算法,OpenCV提供了其中两种。两者都可以通过同一个函数访问;cv.inpaint()

第一种算法是基于Alexandru Telea在2004年发表的论文**“一种基于快速行进方法的图像修补技术”**。它是基于快速行进法的。考虑图像中要补绘的区域。算法从该区域的边界开始,在区域内部逐步填充边界内的所有东西。它需要一个小的邻域,围绕邻域上的像素进行内绘。该像素被附近所有已知像素的归一化加权和所取代。权重的选择是一件重要的事情。对靠近点的像素、靠近边界法线的像素和位于边界轮廓上的像素给予更多的权重。一旦一个像素被嵌入,它移动到下一个最近的像素使用快速行进方法。FMM确保已知像素附近的像素首先被补绘,因此它就像手动启发式操作一样工作。该算法通过使用标志来启用,cv.INPAINT_TELEA.

第二种算法基于Bertalmio, Marcelo, Andrea L. Bertozzi和Guillermo Sapiro在2001年发表的论文**“Navier-Stokes,流体动力学,and Image and Video Inpainting”**。该算法以流体动力学为基础,利用偏微分方程。基本原理是启发式的。它首先沿着边缘从已知区域移动到未知区域(因为边缘意味着连续的)。它在修补区域边界处匹配梯度向量的同时,继续等距(相同强度的线连接点,就像等高线连接点一样)。为此,使用了流体动力学中的一些方法。一旦它们被获得,就填充颜色以减少该区域的最小方差。该算法通过使用标志来启用,cv.INPAINT_NS.

【代码】

在这里插入图片描述

import numpy as np 
import cv2 img = cv2.imread("assets/messi2.jpg")
mask = cv2.imread("assets/messi2_mask.jpg", 0)dst1 = cv2.inpaint(img, mask, 3, cv2.INPAINT_TELEA)
dst2 = cv2.inpaint(img, mask, 3, cv2.INPAINT_NS)cv2.imshow("src", img)
cv2.imshow("mask", mask)
cv2.imshow("dst_TELEA", dst1)
cv2.imshow("dst_NS", dst2)cv2.waitKey(0)
cv2.destroyAllWindows()

【接口】

  • inpaint
cv2.inpaint(	src, inpaintMask, inpaintRadius, flags[, dst]	) ->	dst

Restores the selected region in an image using the region neighborhood.

  • src: 输入图像,8位,16位,32位单通道或者8位3通道图像
  • inpaintMask: 修复掩码,8位单通道,非0表示需要修复;
  • inpaintRadius: 修复半径
  • dst: 输出的图像
  • flags: cv2.INPAINT_NScv2.INPAINT_TELEA

【参考】

  1. Image Inpainting
  2. Bertalmio, Marcelo, Andrea L. Bertozzi, and Guillermo Sapiro. “Navier-stokes, fluid dynamics, and image and video inpainting.” In Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, vol. 1, pp. I-355. IEEE, 2001.
  3. Telea, Alexandru. “An image inpainting technique based on the fast marching method.” Journal of graphics tools 9.1 (2004): 23-34.
  4. Inpainting

相关内容

热门资讯

怎么破解安卓车载系统,破解之道... 如何破解安卓车载系统:一场技术冒险之旅在当今数字化时代,汽车已经不仅仅是一种交通工具,它更是一个集成...
安卓系统桌面制作软件,打造个性... 你有没有想过,你的安卓手机桌面是不是也能变得像杂志封面一样炫酷呢?没错,今天就要来聊聊这个话题——安...
安卓官服什么系统最好,探寻最佳... 你有没有想过,你的安卓官服到底该用哪个系统呢?这可是个让人头疼的问题,毕竟每个系统都有它的特色和优缺...
安卓系统怎么安定位,步骤详解与... 你有没有想过,为什么你的手机总是能精准地告诉你附近有什么好吃的、好玩的地方呢?这都要归功于安卓系统的...
华为参与开发安卓系统,共筑智能... 你知道吗?最近有个大新闻,那就是华为竟然参与了安卓系统的开发!是不是觉得有点不可思议?别急,让我带你...
安卓新系统好还是旧系统,安卓新... 你有没有发现,每次安卓系统更新,朋友圈里就炸开了锅?有人欢呼雀跃,有人愁眉苦脸。那么,安卓新系统真的...
安卓系统主要界面元素,探索主要... 你有没有发现,每次打开安卓手机,那熟悉的界面总是让人眼前一亮?今天,就让我带你一起探索安卓系统那些让...
安卓平板7.0系统好吗,智能生... 你有没有想过,拥有一台运行着最新安卓7.0系统的平板电脑,会是怎样的体验呢?想象手指轻轻滑过屏幕,流...
安卓手机换联想系统,深度体验联... 你有没有想过,你的安卓手机换上联想系统后,会发生哪些奇妙的变化呢?想象原本熟悉的界面突然焕然一新,是...
刷安卓系统的工具,轻松实现系统... 你有没有想过,你的安卓手机是不是也能像电脑一样,装上各种有趣的系统呢?没错,今天就要来聊聊这个神奇的...
机械革命安卓系统设置,个性化定... 机械革命安卓系统设置全解析在当今这个数字化时代,智能手机已经成为我们生活中不可或缺的一部分。它不仅仅...
安卓监管系统有哪些,技术手段与... 你知道吗?随着智能手机的普及,安卓系统已经成为了全球最受欢迎的操作系统之一。但是,你知道吗?为了让这...
安卓系统更新知乎,畅享智能生活... 你有没有发现,你的安卓手机最近是不是总在提醒你更新系统呢?别急,别急,今天就来给你好好聊聊这个话题。...
安卓手机系统铃声目录,个性化音... 你有没有发现,每次拿起安卓手机,那熟悉的铃声总是能瞬间唤醒你的注意力?今天,就让我带你一起探索一下安...
安卓系统修改开机画面,安卓系统... 亲爱的手机控们,你是否厌倦了每次开机时看到的那张千篇一律的开机画面?想要给你的安卓手机来点新鲜感?那...
安卓系统隐私密码,守护个人隐私... 你有没有想过,你的安卓手机里藏着多少秘密?那些聊天记录、照片、支付信息,全都在那里静静地躺着,等着被...
8848是安卓什么系统,搭载安... 你有没有想过,你的手机里那个高大上的8848手机,它到底是用的是什么操作系统呢?别急,今天就来给你揭...
安卓刷windowsxp系统下... 你有没有想过,让你的安卓手机瞬间变身成一台Windows XP电脑呢?没错,就是那个经典的操作系统!...
插画安卓系统推荐哪个,插画风格... 你有没有想过,手机里的插画风格也能成为个性展示的一部分呢?想象你的手机界面就像是一幅精美的画作,是不...
安卓系统怎么升级cpu,解锁性... 亲爱的安卓用户们,你是否也和我一样,对手机性能的提升充满了期待?想要让你的安卓手机跑得更快,升级CP...