-
大小: 15.67MB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-07-16
- 語言: C/C++
- 標簽: PatchMatch??圖像修復??
資源簡介
本資源是基于C++編寫的patchmatch圖像修復代碼,編譯環(huán)境是基于vs2015+opencv3.x,在圖像修復之前需要先手動將原始圖片的孔洞部分標識出來,具體的方法參考壓縮包里的參考圖片即可。
代碼片段和文件信息
#include?“patch.h“
//返回最小差值(最相似)的塊的代表數字,用于后續(xù)判斷
//GetMinPatch1的簡化版
int?patch::GetMinPatch2(Mat?Dst?Mat?Src1?Mat?Src2)
{
float?dist1?=?Distance(Dst?Src1);
float?dist2?=?Distance(Dst?Src2);
if?(dist1? 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;
//減小框大小的公式,
評論
共有 條評論