Opencv之实现图像修复intpaint()函数

OpenCV图像修复函数inpaint() 前言 在实际应用或者是工程当中,经常需要对图像进行修复,在OpenCV中提供了能够对含有较少“污染”或者水印的图像进行修复的inpaint()函数 函数原型 void cv::inpaint(InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags) src 输入待修复图像 inpaintMask 修复掩码 dst 修复后输出图像 inpaintRad 阅读详情

无意中看到inpaint()这个函数,它具有图像修复功能,这个应该很有趣,故查找了相关资料,整理好并呈现在这里。

一、inpaint()函数介绍

void inpaint( const Mat& src, const Mat& inpaintMask,  
                         Mat& dst, double inpaintRange, int flags );
第一个参数InputArray类型的src,为8位单通道或者三通道图像的输入图像(要修复的图像);
第二个参数inpaintMask为修复掩膜,为8位单通道图像,其中非零像素表示要修补的区域;
第三个参数为dst,该函数的输出结果就放在这里,它和src图像类型是一样的;
第四个参数是double类型的inpaintRadius,需要修复点的附近的圆形区域,该值为修复区域的半径;
最后一个参数是int型的flags,为修补方法的标识符,两种修饰方法见下表:

标识符 说明
INPAINT_NS 基于Navier-Stokes方法
INPAINT_TEELEA A了先倒入Telea方法

CV_INPAINT_NS - 基于Navier-Stokes的方法。

比较难懂,贴个链接:

http://wenku.baidu.com/link?url=aut0V0I8ngmDiQOl6uvjZqAukhfAYeiF38C2-EMS8NScb5VKB3ZMBTpicbO7hU_22yP7zcH2Lz9PDVQrzOYWIthrLWBqYNRAvHCuSZqD6qa


图像去水印/修复 实际应用中,我们的图像常常会被噪声腐蚀,这些噪声可能是划痕,涂鸦等。或者图像的部分本身已经损毁。这就需要对图片进行还原。 图像的修复原理: 利用那些已经被破坏的区域的边缘,即边缘的颜色和结构,根据这些图像留下的信息去推断被破坏的信息区域的信息内容,然后对破坏区进行填补,以达到图像修补的目的。 OpenCV中的两种修复算法 1、inpaint函数 说明 使用区域邻域恢复图像中的选定区域。... 阅读详情

相关推荐

OpenCV图像修复算法 - cv::inpaniting()

OpenCV中,可以通过cv::inpaint()函数使用该算法。该算法通过传播边界信息来修复图像,适用于修复较大区域的损坏。同样可以通过cv::inpaint()函数使用该算法。该算法基于流体动力学原理,适用于修复小区域的损坏。

cainiaoshileyuan的博客 434

c++数据处理----图像修补:cv::inpaint()

c++数据处理----图像修补:cv::inpaint()

qq_46107892的博客 1381

OpenCV每日函数图像修复算法——Inpaint函数

在上述代码中,cv2.inpaint函数的第一个参数是待修复的图像,第二个参数是掩膜,第三个参数是修复算法的半径大小(影响修复的范围),第四个参数是修复算法的类型。根据实际需求选择合适的算法类型即可。图像修复是计算机视觉领域中一个重要的任务,它可以用于去除图像中的噪声、遮挡物或损坏部分,以及恢复缺失的图像信息。OpenCV是一个广泛使用的开源计算机视觉库,提供了丰富的函数和算法来进行图像处理和修复。掩膜是一个与原始图像具有相同尺寸的二值图像,其中被遮挡或缺失的区域用白色表示,而其他区域用黑色表示。

web_bug407的博客 2231

cvInpaint的使用说明

cvInpaint() 是opencv中的图像修复函数,它的接口定义如下: cvInpaint(const CvArr* src,const CvArr* inpaint_mask,CvArr* dst,double inpaintRange,int flags) src:待修复的源图像。 inpaint_mask:待修复区域,该参数为单通道图像,一般用待修复区域的轮廓图像或边缘图像。

wpm_cl的博客 1288

图像处理:基于cv2.inpaint()图像修补

图像处理:基于cv2.inpaint()图像修补。今天我们将学习如何通过一种“修复”的方法消除旧照片中的小噪音,笔画等。当然,经过我的测试你也可以将其用于削弱混杂了其他的颜色的图像。大多数人家都会有一些旧的的旧化照片,上面有黑点,一些笔触等。你是否曾经想过将其还原?我们不能简单地在绘画工具中擦除它们,因为它将简单地用白色结构代替黑色结构,这是没有用的。在这些情况下,将使用一种称为图像修复的技术。基本思想很简单:用附近的像素替换那些不良区域,使其看起来和邻近的协调。考虑下面显示的图像。

m0_62919535的博客 7487

学习OpenCV——cv::inpaint函数(三)

【代码】学习OpenCV——cv::inpaint函数(三)

曾经也曾立志 768

OpenCV——图像修复函数intpaint()使用详解

函数原型: inpaint( src,inpaintMask,inpaintRange, flags ) 函数作用是用flags方法和inpaintMask掩膜在考虑每个点邻域圆形半径时修复图像src,并返回修复好的图像。 参数: src,要修复的图像(为8位单通道或者三通道图像的输入图像) inpaintMsk,表示修复的模板(掩膜,可以理解为补丁) inpaintRange,算法考虑的每个点的圆形邻域的半径。 flags,要使用的修复算法。 flags算法有...

helloword111222的博客 805

java Opencv 图片修复 Photo

OpenCV 如何进行图片修复 修复函数: Photo.inpaint(imageSrc, imageMask, imageDst, radius, Photo.INPAINT_TELEA); imageSrc 是修复之前的图片 imageMask 是修复模板 imageDst 修复结果 radius 是修复半径 Photo.INPAINT_TELEA 是修复方法 准备原图片 我们可以看到的是在图片的右下角 “百家号/阿虹说娱乐” 我们如何把这个去除,这是我们的目的 准备修复模板 如何创建修复模板其

datouniao1的博客 1860

opencv图像修复算法cvInpaint(Telea的FMM算法)

最近项目中要用到修复技术,看opencv里有两种算法,我先尝试了一下Telea在2004年提出的基于快速行进的修复算法(后面简称FMM算法)。找到作者的原文看了一下,对算法有了一定了解,记录一下。 论文题目:An Image Inpainting Technique Based on the Fast Marching Method (2004) 作者主页:http://www.cs.ru

1万+

利用OpenCV实现图像修复

图像修复技术的应用 想想一下,我们有一张非常棒的相片,但是由于时间比较久远,没有电子版留底,而纸质版的又十分不便于保存。因此长采用扫描的方式获得电子版。但是非常不幸,扫描过程中落入了一根头发,或者是机器出现故 障,对相片造成了影响,这个时候就可以通过图像修复技术解决这个问题。 OpenCV中图片修复技术 1、Inpaint_ns:基于Navier-Stokes的图像修复 该方法在2001年提出,其神奇之处竟然是基于流体力学理论提出的方法。根据其作者提出,我们需要解决的问题可以抽象成在一个鞋子图片上有一个黑色

hallobike的博客 2297

opencv 图像修复 inpaint

flags :代表的是选用的算法,opencv里自带的是 INPAINT_NS 与 INPAINT_TELEA。inpaintRadius :代表的是领域修复半径。dst :代表的是修复完后完成后的图片。mask :代表的是需要修复图片的区域。src :代表的是需要进行修复的图片。(mask是单通道的图像)

qq_54162982的博客 1103

利用OpenCV函数inpaint()实现图像的污点修复

图像修复技术就是利用图像中损坏区域边缘的像素,根据像素值的大小以及像素间的结构关系,估计出损坏区域可能的像素排列,从而去除图像中受污染的区域。图像修复不仅可以去除图像中得“划痕”,还可以去除图像中得水印、日期等。 OpenCV 提供了能够对含有较少污染或者水印的图像进行修复的函数inpaint(),其原型如下: void cv::inpaint( InputArray src, InputArray inpaintMask, OutputArray dst, dou

昊虹AI笔记 1万+

OpenCV实现图像去水印功能(inpaint

使用OpenCV C++ 进行简单图像水印去除

hulinhulin的专栏 1785

opencv图像修补-inpaint函数

图像修复技术原理:利用已被破坏的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像中,已达到图像修补的目的。 运用场合:在实际运用中,图像常常会被噪声腐蚀,这些噪声有可能是镜头上的灰尘、水滴,或者是旧图片的划痕,而解决这些问题的良方,就是“图像修复” void inpaint( InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags

帕帕尼的博客 1843

Opencv3笔记26——图像修补

1. 概念 利用那些已经被破坏的区域的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像,以达到图像修补的目的。 2.图像修补:inpaint()函数 图像修补函数inpaint函数实现,它可以用来从描述的照片中清除灰尘和划痕,或者从静态图像或视频中去除不需要的物体。函数原型如下: void inpaint(InputArray src,InputArray inpaintMask,Ou...

绝尘 2307

基于OPENCV的图像识别(JAVA版本)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、使用方法二、使用步骤1.废话不多说,直接上代码转载地址 前言 前几天需要开发一款自动化测试工具,需要用到图像识别 但从未接触过图像算法相关知识,无奈只能找轮子 功夫不负有心人,找到大神分享的一遍文章 现分享给大家 一、使用方法 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.废话不多说,直接上代码 代码如下(示例): public class ImageRecog

riihiq000的博客 1万+

OpenCV每日函数 计算摄影模块(1) 图像修复算法 inpaint函数

该算法使用区域邻域恢复图像中的选定区域。该功能可用于去除扫描照片上的灰尘和划痕,或去除静止图像或视频中不需要的物体。 src 输入 8 位、16 位无符号或 32 位浮点 1 通道或 8 位 3 通道图像。 inpaintMask 修复蒙版,8 位 1 通道图像。 非零像素表示需要修复的区域。 dst 输出与 src 大小和类型相同的图像 inpaintRadius 算法考虑的每个修复点的圆形邻域的半径。 flags 可以是 cv::INPAINT_NS 或 cv::INPAINT_TELEA 的修复方法.

学以致用 知行合一 1992

OpenCV53:图像修补|Image Inpainting

图像修补 目标 在本章中, 将学习 通过inpainting的方法清除旧照片中的小噪音等 学习OpenCV中的修复函数 基础 大多数人的家里都会有一些旧化的照片,上面可能有黑点、折痕、笔画等。大多数人都想将其还原成原先的样子。但不能简单地在绘画工具中擦除它们,因为擦除操作只是简单地用白色结构代替黑色结构,这是没有用的。在这些情况下,将使用一种称为图像修复的技术。基本思想很简单:用附近的像素替换那些不良区域,使其看起来和邻近的像素比较协调。考虑下面显示的图像(摘自Wikipedia): 左边是旧化的照片

uncle_ll的博客 2441
上一篇: Opencv之鼠标响应setMouseCallback()的用法
下一篇: Opencv之分水岭原理和实现
五仁月饼哭了
博客等级 码龄11年 316粉丝 91原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值