opencv 图像修复 inpaint

参数:

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

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

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

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

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

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

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

用例:

选用图像:

opencv 图像修复 inpaint_第1张图片

图像修复代码:

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

opencv 图像修复 inpaint_第2张图片

你可能感兴趣的:(计算机视觉,opencv,计算机视觉)