• 大小: 15.67MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-16
  • 语言: C/C++
  • 标签: PatchMatch  图像修复  

资源简介

本资源是基于C++编写的patchmatch图像修复代码,编译环境是基于vs2015+opencv3.x,在图像修复之前需要先手动将原始图片的孔洞部分标识出来,具体的方法参考压缩包里的参考图片即可。

资源截图

代码片段和文件信息


#include “patch.h“

//返回最小差值(最相似)的块的代表数字,用于后续判断
//GetMinPatch1的简化版
int patch::GetMinPatch2(Mat Dst Mat Src1 Mat Src2)
{
float dist1 = Distance(Dst Src1);
float dist2 = Distance(Dst Src2);

if (dist1 < dist2)
return 1;
else
return 2;
}

//迭代第二步:随机搜索
//(rowcol)=(now_row now_col):修复patch里的像素
void patch::RandomSearch(Mat Dst Mat Src Mat Mask Mat &Off int row int col)
{
Mat DstPatch = GetPatch(Dst row col);//获取修复基准框,在框内操作

//迭代指数
int attenuate = 0;

while (true)
{
//获取随机参数,在 [-1;1] 间
float divcol = rand() % 2000 / 1000.0f - 1.0f;
float divrow = rand() % 2000 / 1000.0f - 1.0f;

//减小框大小的公式,

评论

共有 条评论