-
大小: 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;
//减小框大小的公式,
评论
共有 条评论