opencv 图像修复 inpaint

该文章介绍了如何利用OpenCV的inpaint函数修复图像,主要参数包括源图像(src),修复区域(mask),修复半径(inpaintRadius)和修复算法(flags)。示例代码中,首先读取并转换图像到灰度,然后创建修复区域mask,最后应用INPAINT_TELEA算法进行修复,并展示修复前后对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数:

在opencv中的图像修复的api是inpaint,具体的使用方法图下:

dst = cv2.inpaint(src, mask, inpaintRadius,flags)

dst :代表的是修复完后完成后的图片

src :代表的是需要进行修复的图片

mask :代表的是需要修复图片的区域

inpaintRadius :代表的是领域修复半径

flags :代表的是选用的算法,opencv里自带的是 INPAINT_NS 与 INPAINT_TELEA

用例:

选用图像:

图像修复代码:

addr = 'fruit.png'

import numpy as np
import cv2 as cv

# 读入图片|转换灰度
img = cv.imread(addr)
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

# 寻找需要修复的点
_, mask = cv.threshold(img_gray, 254, 255, cv.THRESH_BINARY)
mask[:, mask.shape[1] - 3:mask.shape[1]] = 255

# 进行图像修复
dst = cv.inpaint(img, mask, 5, flags=cv.INPAINT_TELEA)

# 链接图像
all_photo = np.hstack((img,dst))

# 展示
cv.imshow("img", all_photo)
cv.waitKey(0)
cv.destroyAllWindows()

运行结果:

mask:

(mask是单通道的图像)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值