参数:
在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是单通道的图像)