OpenCV 图像修补

部署运行你感兴趣的模型镜像

OpenCV中图像修补技术由inpaint函数实现。

基本步骤是:先修复区域边缘再逐步向内推进修复。

可以用来清除照片灰尘、划痕或者从静态图像及视频中去除不需要的物体。


图像修补函数—cv2.inpaint()

def inpaint(src, inpaintMask, inpaintRadius, flags, dst=None):
# inpaint(src, inpaintMask, inpaintRadius, flags[, dst]) -> dst
  • src:输入图像,需要为8位单通道(dtype=uint8)或三通道图像
  • inpaintMask:修复掩膜,为八位单通道图像,其中非0像素表示需要修补的区域
  • dst:函数调用后输出图像,和原图一样的尺寸和类型
  • inpaintRadius:需要修补的每一个点的圆形邻域,为修复算法的半径参考(决定修补图像的清晰度)
  • flags: 修补方法的标识符

flags有两种算法:基于Navier-Stokes方程方法和Alexandru Telea算法

  1. INPAINT_NS = CV_INPAINT_NS
  2. INPAINT_TELEA = CV_INPAINT_TELEA

图像修补示例
在这里插入图片描述在这里插入图片描述

import numpy as np
import cv2

img = cv2.imread('../data/messi_2.jpg')  # 读取目标图片
mask = cv2.imread('../data/mask2.png', 0) # 读取掩膜图片

dst = cv2.inpaint(img, mask, 3, cv2.INPAINT_TELEA) # 使用INPAINT_TELEA算法进行修复
cv2.imshow('TELEA', dst)

dst2 = cv2.inpaint(img, mask, 3, cv2.INPAINT_NS)  # 使用INPAINT_NS算法进行修复
cv2.imshow('NS', dst2)

cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述在这里插入图片描述


注意:图片修补技术也可以对图片进行去水印操作

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹏AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值