数字修复可用来解决图形中小区域污染一重构图像,近年来被广泛应用再去出文本和Logo图标等场景中,利用重构去除图像中的画横和污点。常用于修复图像的算法是基于快速进行的修复算法,FMM。论文的名字是An Image Inpainting Technique Based on the Fast March Method.其原理思想是先修复待修复区域边缘上的点,软后扩大区域进行遍历,知道修复完所有待修复的图像像素。
void inpaint(InputArzhuwei ray src, InputArray inpaintMask, OutputAyyay dst, double inpaintRadius, int flags)
函数解析:
实现图像选定区域的修复。输入图像源src为8bit到通道或者3通道图像;inpaintMask为输入掩码图像,8bit单通道;输出图像dst与输入图像同大小同类型;inpaintRadius用于设定像素点修复领域半径;flag为修复算法类型选择;INPAINT_NS是Navier_Stokes提出。INPAINT_TELEA是Alexandru Telea提出的。
代码如下:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/opencv.hpp"
#include "opencv2/core/core.hpp"
#include <iostream>
#include "opencv2/photo/photo.hpp"
using namespace std;
using namespace cv;
Mat img, inpaintMask;
Point prevPt(-1, -1);
//鼠标点击绘制噪声
static void onMouse(int event, int x, int